Saya menambahkan fitur pemulihan paket nuget baru-baru ini ke solusi menggunakan 'Aktifkan Pemulihan Paket NuGet': http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Namun itu merusak server build saya dan saya tidak punya waktu untuk memperbaikinya, jadi saya ingin menghapusnya. Tidak ada pilihan untuk itu sejauh yang saya tahu, jadi saya menghapus baris berikut secara manual dari semua file * .csproj saya:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Masalahnya sekarang adalah bahwa setiap kali file * .csproj saya dicentang atau membuka solusi saya, saluran tersebut secara otomatis ditambahkan lagi, merusak build saya jika saya tidak sengaja memeriksanya di :(
Ada ide bagaimana saya bisa menghapusnya secara permanen?
UPDATE: meskipun jawaban di bawah ini masih terus datang kembali ketika membuka solusi, siapa pun dengan masalah yang sama?
sumber
Jawaban:
Saya tidak terlihat sangat baik, ada properti lain yang ditambahkan ke file proyek:
Hanya perlu menghapus ini dan semua baris ini secara manual dari semua file * .csproj:
MEMPERBARUI:
Ternyata itu bugger kecil yang persisten, jika Anda mengedit file proyek Anda secara manual, pastikan untuk menutup solusi dan menghapus semua baris dari proyek sekaligus , jika tidak mereka hanya ditambahkan lagi begitu proyek memuat ulang ...
UPDATE2:
Hapus juga folder .nuget dari root solusi
UPDATE3:
Versi NuGet yang lebih baru menambahkan bagian lain yang perlu Anda hapus:
Pembaruan4
Di dalam yang
NuGet.Targets
terletak di.nuget
folder, ada bagian lain yang ditambahkan ke proyek baru ... alihkan ke false.sumber
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
di akhir file .csproj yang perlu dihapus secara manual.Untuk menonaktifkan Pemulihan Paket Nuget:
Baris untuk dihapus:
Catatan: Pastikan Anda melakukan semua perubahan dalam sekali jalan sebelum memuat ulang solusi atau solusi itu akan menambahkannya kembali.
Ini didasarkan pada artikel berikut: http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html
Juga, Anda mungkin ingin memeriksa ulang bahwa opsi ini dinonaktifkan: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
sumber
Bukankah ini pengaturan di sini?
Pilihan ... -> Pengelola Paket Nuget -> [hapus centang] Izinkan Nuget untuk mengunduh paket yang hilang
Saya menggunakan Visual Studio Professional + Resharper 8.2
sumber
Restoring NuGet packages... To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.'
itu hanya konfirmasi bahwa ini harus menjadi cara untuk pergi..nuget/
folder dan memodifikasi Anda.csproj
untuk referensi.targets
file. Anda seharusnya mengkomitnuget.exe
ke VCS Anda (eww, menyelesaikan masalah yang nuget selesaikan!) Dan kejelekan seperti itu. Saat ini,msbuild /restore
ada dan mengembalikan paket bawaan VS. OP bertanya bagaimana cara menghapus cara lama yang buruk dalam melakukan sesuatu — bukan bagaimana cara menonaktifkan dukungan paket bawaan bawaan VS yang benar.Solusi yang saat ini menggunakan pemulihan paket MSBuild-Integrated dapat dimigrasi ke Pemulihan Paket Otomatis. Dari apa yang saya pahami, ini seharusnya membantu mereka yang mengalami masalah pembangunan CI. (Tolong koreksi saya jika saya salah).
Silakan merujuk ke dokumen di situs web nuget: Migrasi solusi MSBuild-Integrated untuk menggunakan Pemulihan Paket Otomatis di http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Ada informasi di sana untuk mengkonversi dengan dan tanpa TFS.
David Ebbo juga memposting beberapa informasi di http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
sumber
Kami sebenarnya memiliki posting blog tentang hal itu dan di akhir posting sebuah skrip PowerShell disebutkan untuk membantu dengan migrasi.
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
sumber
NuGet memiliki posting blog tentang migrasi ke pengembalian paket otomatis: http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Ada skrip powershell yang dirujuk dalam posting blog yang akan membantu menghapus baris yang diperlukan secara otomatis (dan secara rekursif): https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
Menawarkan Nonaktifkan Paket Pemulihan Paket NuGet langsung ditandai sebagai Tidak Akan Perbaiki: https://nuget.codeplex.com/workitem/1883
sumber
Saya mengikuti solusi yang diterima tanpa hasil menggunakan 2012. Ini berhasil,
<RestorePackages>true</RestorePackages>
ke<RestorePackages>false</RestorePackages>
dan hapus<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
barisnuget.exe
menjadinuget.exe.NotExe
sumber
Bagi siapa pun yang masih perlu membersihkan proyek menggunakan pemulihan paket NuGet gaya lama, alat IFix yang tersedia di sini mengotomatiskan proses.
Jalankan saja penginstal (
IFix
akan ditambahkan kePATH
) dan kemudian jalankan yang berikut:Anda dapat menjalankannya dalam mode periksa terlebih dahulu untuk melihat apa yang akan dibersihkan:
sumber
Saya memiliki masalah yang sama. Apa yang akhirnya saya lakukan: 1) masuk ke setiap proyek .csproj file dalam solusi, buka di notepad kemudian dihapus bagian dari xml dan disimpan.
2) Lalu saya menghapus semua file package.config di seluruh solusi.
3) Kemudian saya harus menghapus folder .nuget dan paket.
Pada titik ini, saya memiliki solusi gratis yang sepenuhnya NuGet.
4) Kemudian saya secara manual mereferensikan DLL yang diperlukan dan tekan kompilasi dan solusinya berjalan seperti jagoan tanpa paket NuGet diperlukan.
sumber
Pergi ke direktori solusi Anda di mana Anda memiliki
[$(SolutionDir)\.nuget\nuget.targets] .nuget
folder dannuget.targets
file di bawahnya menghapus folder, dan mengubah garis hapus dari Anda csproj untuk sekali terakhir kali.Masalahnya tidak akan kembali mengganggumu lagi.
sumber
Lepaskan packages.config berkas dalam solusi Anda.
sumber
Saya tidak sengaja mengaktifkan opsi "paket pemulihan" ini saat membuka proyek saya di VS2012 RC dan mulai mendapatkan kesalahan yang terlihat seperti:
"Kesalahan 1 Tidak dapat menemukan 'C: \ FolderX \ SomeProject.nuget \ nuget.exe'"
Untuk memperbaiki kesalahan saya ikuti instruksi di atas, buka buka setiap file proyek di notepad dan hapus baris RestorePackage itu.
sumber
Saya dapat menyelesaikan masalah ini dengan mengambil langkah-langkah ini:
1) pastikan Anda mengambil cadangan dari semua perubahan file yang Anda periksa saat ini.
2) secara fisik hapus folder solusi dari C: \ (jalur yang dipetakan ke TFS).
3) dapatkan yang terbaru dari TFS untuk solusi Anda.
4) salin (jika ada) perubahan Anda dari cadangan yang Anda ambil pada langkah-1.
berharap itu bisa membantu!
sumber
Saya mengalami masalah yang sama persis dan mencoba untuk menghapus semua tag .nuget dan RestorePackage dari file proyek tetapi satu proyek tidak akan memuat ulang tidak peduli seberapa teliti saya memeriksanya untuk tag .nuget dan RestorePackages. Saya kira ada beberapa referensi tersembunyi di suatu tempat.
Pada akhirnya lebih mudah hanya menyalin file dan membuat proyek baru dan mengimpornya ke solusi.
sumber
Nuget menyebalkan. Hapus saja nuget dan hapus atau komentar elemen paket dari packages.config di direktori root proyek di mana ini menjadi masalah. Gunakan referensi langsung ke beberapa folder lib sebagai gantinya.
sumber