Dengan versi NuGet yang lebih baru, Anda dapat mengonfigurasi proyek untuk secara otomatis memulihkan paket NuGet sehingga packages
folder tersebut tidak perlu disertakan dalam repositori kode sumber. Baik.
Namun, perintah ini menambahkan .nuget
folder baru dan ada biner di sana, NuGet.exe. Ini juga dapat dibuat ulang secara otomatis oleh Visual Studio sehingga rasanya tidak benar untuk menambahkannya ke kontrol versi. Namun, tanpa folder ini Visual Studio bahkan tidak dapat memuat solusi dengan benar.
Bagaimana Anda menghadapi ini? Tambahkan .nuget ke kontrol sumber? Jalankan beberapa skrip baris perintah sebelum membuka solusi?
visual-studio
version-control
nuget
Borek Bernard
sumber
sumber
Jawaban:
Posting ini sudah lama, Anda seharusnya tidak menggunakan pemulihan paket tingkat solusi NuGet lagi. Mulai versi 2.7+, ada opsi di pengaturan NuGet untuk secara otomatis memulihkan paket saat dibangun. Jadi, folder .nuget dapat dihapus dan opsi dihapus dari proyek Anda.
http://docs.nuget.org/docs/reference/package-restore
PEMBARUAN: Dengan dirilisnya NuGet 4.x dan .NET Standard 2.0, saat Anda menggunakan format csproj baru, Anda sekarang dapat menggunakan referensi paket, ironisnya memperkenalkan kembali ketergantungan pada msbuild untuk memulihkan paket, tetapi sekarang paket adalah warga kelas pertama msbuild . Tautan di atas juga menyebutkan
PackageReference
, tetapi pengumuman berikut merinci lebih baik:https://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html
Dan pengumuman NuGet 4.x RTM, yang ironisnya tidak begitu berguna:
https://blog.nuget.org/20170308/Announcing-NuGet-4.0-RTM.html
PEMBARUAN 2: Rupanya dengan VS2017 Anda bahkan dapat menggunakan referensi paket dengan proyek csproj klasik, tetapi mereka tidak lagi kompatibel ke belakang, dan ada beberapa masalah dengan memulihkan sub-ketergantungan paket. Saya yakin itu semua akan terselesaikan.
sumber
Tools > Extensions & Updates > Updates
.Jawaban @Richard Szalay benar - Anda tidak perlu melakukan nuget.exe. Jika karena beberapa alasan Visual Studio tidak secara otomatis mengunduh nuget.exe, pastikan Anda memiliki yang berikut ini disetel ke true di
nuget.targets
file:Tutup solusi VS, buka kembali dan bangun. Visual Studio harus mengunduh nuget.exe secara otomatis sekarang.
sumber
true
secara default?Menurut utas ini , folder .nuget harus dikontrol versi.
sumber
Anda perlu berkomitmen
.nuget\nuget.targets
, tetapi tidaknuget.exe
. Target akan men-download exe jika tidak ada, asalkan Anda mengubahDownloadNuGetExe
ketrue
dalam nuget.targetssumber
Meskipun saya biasanya tidak menyukai gagasan untuk menambahkan exe ke kontrol sumber, saya menyarankan bahwa kontrol sumber harus berisi apa pun yang diperlukan untuk membuka, membangun, dan menjalankan proyek.
Dalam hal ini, sepertinya folder .nuget adalah dependensi yang diperlukan. Oleh karena itu, harus di bawah kendali sumber.
Satu-satunya pertanyaan tersisa, yang perlu Anda teliti, adalah bagaimana NuGet akan bereaksi jika folder itu ditandai hanya-baca, yang akan dilakukan TFS setelah check-in.
Pembaruan: Saya melakukan sedikit lebih banyak penelitian tentang ini karena saya belum pernah menggunakan NuGet sebelumnya. http://blog.davidebbo.com/2011/03/using-nuget-without-committing-packages.html
Saya sarankan mungkin yang ingin Anda lakukan adalah menjadikan NuGet sebagai persyaratan yang harus diinstal di setiap workstation developer.
Selanjutnya, Anda harus menempatkan di kontrol sumber file batch yang diperlukan untuk menyiapkan workstation untuk mulai mengedit proyek. File batch akan menjalankan perintah yang diperlukan untuk mendapatkan dan menginstal paket dependensi.
Selain itu, saya akan mengatakan Anda mungkin ingin menghubungi NuGet secara langsung untuk menanyakan kepada mereka bagaimana tepatnya ini seharusnya berhasil.
sumber
<RestorePackages>true</RestorePackages>
dalam file * .csproj harus cukup informasi untuk Visual Studio tetapi mungkin tidak.Sekarang nuget mendukung pemulihan paket, kami melihatnya lebih dekat.
Kami menggunakan Subversion untuk kontrol sumber, dan pemikiran awal saya adalah yang
.nuget
harus ditambahkan ke repositori kami, tetapi ditambahkan menggunakan svn: eksternal sehingga mengarah ke satu lokasi.Dengan begitu kami dapat secara otomatis mengeluarkan versi baru ke semua pengembang dan proyek. Untuk proyek di cabang rilis, daripada HEAD, kita dapat menentukan revisi referensi svn: externals jika kita ingin meninggalkan nuget sendiri.
Kami memiliki banyak proyek, jadi itu juga berarti tidak menduplikasi
nuget.exe
beberapa kali dalam repo.sumber
Kami memiliki
nuget.config
file di folder, karena memiliki referensi ke server Nuget internal kami, menggunakan area Sumber Paket: https://docs.nuget.org/consume/nuget-config-settingsSelain alasan ini, Anda harus membiarkan Visual Studio menangani pengunduhan paket.
sumber