Saya mencari masalah ini tetapi tidak ada solusi yang berhasil. Saya telah menginstal Visual Studio Professional 2015 dan saya menggunakan TFS. Versi NuGet saya adalah 3.1.6. Masalah ini hanya terjadi di proyek C # Web API / MVC saya.
Saya mendapatkan kesalahan di bawah ini:
Proyek ini mereferensikan paket NuGet yang hilang di komputer ini. Gunakan Pemulihan Paket NuGet untuk mengunduhnya. Untuk informasi lebih lanjut, lihat http://go.microsoft.com/fwlink/?LinkID=322105 . File yang hilang adalah .. \ paket \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props
- Saya tidak punya folder .nuget di solusi saya.
- Saya memiliki folder paket dalam solusi dan ketika saya menghapusnya, sepertinya NuGet membangun kembali dependensi tetapi proyek masih memiliki kesalahan di atas.
- Saya mencoba menghapus proyek dari TFS dan tidak memperbaikinya.
- Bersamaan dengan kesalahan di atas, semua referensi dalam proyek memiliki tanda-tanda peringatan kuning dan mengatakan mereka hilang.
- Ketika saya memeriksa Manajer Paket NuGet untuk proyek tersebut, segala sesuatu yang "hilang" memiliki tanda centang hijau di sebelahnya, termasuk Microsoft.Net.Compiler.
- Saya mencoba menambahkan proyek Web API / MVC baru dan menghadapi masalah serupa di mana sebagian besar referensi seperti Owin "hilang" dengan tanda peringatan kuning.
visual-studio
nuget
visual-studio-2015
Pertanyaan
sumber
sumber
Jawaban:
Saya memiliki kesalahan yang sama (hilang paket yang sama persis) hari ini. Saya juga membuat proyek MVC + Web API.
Itu terjadi karena saya memindahkan file aplikasi (termasuk .csproj) ke lokasi lain. Saya secara manual memperbarui file .sln tetapi semua dependensi paket sekarang (Visual Studio 2015) disimpan dalam file .csproj.
Mengedit file .csproj dan memperbaiki jalur relatif ke folder solusi (yang berisi folder paket) memecahkan masalah bagi saya.
sumber
Saya memecahkan masalah saya dengan menghapus kode ini dari
.csproj
file:sumber
WASPADALAH - ini memperbarui paket untuk seluruh solusi, bukan hanya proyek.
Jika Anda memiliki satu lagi paket nuget yang hilang yang memberikan kesalahan saat membangun solusi Anda gunakan perintah berikut menggunakan Nuget Command Console dari Tools> Nuget Package Manager> Package Manager Console. Ini akan menginstal ulang semua paket Anda saat ini.
Memperbarui:
Anda dapat memberikan nama proyek tertentu sebagai parameter.
sumber
Saya mendapat pesan yang membuat frustrasi ini. Apa yang akhirnya berhasil bagi saya adalah menghapus semua file dan folder di dalam / paket dan membiarkan VS mengambil kembali semua bangunan selanjutnya.
sumber
Restore Nuget Packages
.Tiberiu benar. Saya harus mengedit file .csproj saya karena file dipindahkan dan menyebabkan masalah ini
Saya mengubah di bagian atas file dan di bagian bawah
sumber
cara ini mengatasi kesalahan saya: Untuk membuka file .csproj untuk pembaruan di Visual Studio 2015+ Solution Explorer:
Klik kanan nama proyek -> Bongkar Proyek
Klik kanan nama proyek -> Edit .csproj
Hapus baris berikut:
Klik kanan nama proyek -> Muat Ulang Proyek
Akhirnya Bangun solusi Anda.
sumber
Saya memecahkan masalah ini dengan menghapus kode berikut dari file .csproj
sumber
Kombinasi dari 2 jawaban berhasil untuk saya. Pertama saya memodifikasi file .csproj untuk menghapus referensi ke versi 1.0.0
dan kemudian melakukannya
dari dan itu berhasil.
sumber
Bagi saya, masalahnya adalah ketika saya menyalin solusi ke folder baru dan membukanya, itu hilang folder Nuget seperti yang ditunjukkan di bawah ini. Saya menyalin folder ini dan semuanya berfungsi. Catatan: Folder yang sama ini berada di kontrol sumber kami tetapi tidak dalam proyek solusi ini, itu di satu direktori.
sumber
Cukup aktifkan Pemulihan Paket NuGet. Klik kanan solusi Anda> pilih 'Aktifkan Pemulihan Paket NuGet'.
Ini akan membuat folder .nuget dengan file NuGet.Config dan memperbaiki masalah saya.
sumber
Saya menggunakan VS2012 dan menghadapi kesalahan yang sama. Saya menghapus tag Target berikut dari file .csproj dan mulai mengkompilasi tanpa kesalahan.
sumber
Untuk memperluas beberapa jawaban di sini, ya Anda dapat menghapus blok berikut dari file .csproj Anda:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
dan ini memperbaiki masalah, namun dalam kasus saya, saya perhatikan bahwa saya memiliki referensi tambahan untuk .NET.Compiler dan .CodeDom.Providers dengan versi yang berbeda:
Ketika paket saya.config hanya mereferensikan yang berikut:
Menghapus item 1.0.0 dari file .csproj memperbaiki masalah.
sumber
Bagi siapa pun yang tersandung di sini dengan masalah yang saya alami (beberapa tetapi tidak semua paket dipulihkan pada server build), bagian terakhir dari teka-teki bagi saya adalah menambahkan NuGet.config di root solusi saya, saudara dari .SLN file seperti yang dijelaskan David Ebbo di sini: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .
Dari posting blog Ebbo, konten file bagi saya sederhana
MEMPERBARUI:
URL API NuGet telah berubah untuk v3 (saat ini pada September 2016). Dari https://www.nuget.org/
sumber
Pesan kesalahan sepenuhnya benar. Saya mencoba semua trik dan tidak ada yang berhasil. Proyek (uji MVC Web App sederhana) pindah dari Komunitas Windows 8.1 VS 2015 ke kotak tes baru saya di Windows 10. Semua pembaruan terbaru ke VS 2015 diterapkan. Saya bahkan tidak bisa menginstal versi paket kompiler yang lebih baru.
Saya akhirnya hanya menyalin Microsoft.Net.Compilers.1.0.0 dari proyek lama ke yang baru dan berhasil. Saya kemudian dapat mulai memperbarui paket lain ke versi yang lebih baru. Sepertinya bug proses peningkatan proyek nuget bagi saya.
CATATAN: Proyek asli dibuat pada VS 2015 dan tidak memiliki metodologi nuget lama.
sumber
Solusi yang berfungsi dalam kasus saya - Visual Studio 2015 Enterprice, project .NET 4.6.1
sumber
Bagi saya, paket ada di sana di bawah jalur yang benar, tetapi folder build di dalam folder paket tidak. Saya hanya menghapus semua paket yang katanya hilang dan membangun kembali solusi dan berhasil membuat folder build dan file .props. Jadi pesan kesalahan itu benar dalam memberi tahu saya bahwa ada sesuatu yang terlewatkan.
sumber
Saya memiliki masalah ini sebagai bangunan gagal di Azure, ketika digunakan dari Git.
Ternyata .gitignore saya tidak termasuk
build
folder..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props
.Setelah
build
folder (paksa) berkomitmen untuk Git, masalah terselesaikan.sumber
Saya memecahkan masalah yang sama dengan langkah-langkah berikut
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />
dari file package.config.Edit file proyek .csproj dan hapus pengaturan di bawah ini.
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> </Target>
Update-Package –reinstall
Poin # 2 dan 3 diberikan oleh pengguna lain dan saya menghargai pengguna tersebut. Poin # 1, menghapus file
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
from package.config lebih penting. Juga, setelah menjalankan perintah yang disebutkan dalam poin # 3, masalah terselesaikan. Semua paket yang tidak diinginkan dihapus dan referensi paket yang diperlukan diperbarui.Semoga ini bisa membantu seseorang.
sumber
Saya tidak dapat menemukan solusi untuk ini jadi saya menambahkan salinan nuget.exe dan skrip PowerShell ke direktori root dari solusi yang disebut prebuild.ps1 dengan konten berikut.
Saya menyebut skrip powershell ini di build saya di jalur script Pre-Build
sumber
Milik saya berfungsi ketika saya menyalin folder paket bersama dengan file solusi dan folder proyek. Saya hanya tidak menyalin folder paket dari tempat sebelumnya.
sumber
Anda juga dapat menggunakan pesan kesalahan yang disarankan sebagai petunjuk. Begini caranya, temukan Kelola Paket untuk Solusi, dan klik pada paket nuget yang hilang.
Itu dia
sumber
Komentari Opsi Penyusun di
WebConfig
:Bangun kembali jika semuanya ok, tidak perlu dilanjutkan, kalau tidak klik kanan proyek, klik 'bongkar proyek' Klik kanan proyek lagi dan edit file .csproj
Memvalidasi jalur Codedom, itu tidak memiliki net45 di jalur sebelumnya, tambahkan secara manual, simpan, muat, bangun kembali. Itu harus bekerja.
sumber
Seperti yang banyak disarankan, menghapus
<Target>
tag mungkin membuatnya bisa dikompilasi. Namun, waspadalah terhadap kenyataan bahwa ia memiliki efek samping ketika Anda melakukannya untuk proyek uji.Saya mendapat kesalahan terkait dengan
MSTest.TestAdapter
paket nuget saat kompilasi. Atasi masalah itu dengan menghapus<Target>
tag. Meskipun itu membuat pembangunan berhasil, metode pengujian menjadi tidak dapat ditemukan. Penjelajah uji tidak akan mencantumkan metode pengujian dalam proyek itu dan Jalankan Uji atau Uji Debug tidak akan berfungsi juga.Saya mengalami ini saat menggunakan
Visual Studio 2017
dan.Net framework 4.7
, itu bisa terjadi di versi lainsumber
$(SolutionDir)
kerja tetapi pembaruan gagal. Saya bertanya di sini . Apakah Anda menemukan solusi?Masalahnya bagi saya adalah bahwa NuGet tidak bisa secara otomatis mendapatkan / memperbarui paket karena path file lengkap akan terlalu besar. Diperbaiki dengan memindahkan solusi saya ke folder di Dokumen saya alih-alih folder yang sangat bersarang .
Kemudian klik kanan pada solusi dan pilih "Kembalikan Paket NuGet" (yang mungkin tidak diperlukan jika Anda hanya membangun dan membiarkannya melakukannya untuk Anda), lalu pilih "Kelola Paket NuGet untuk Solusi" untuk mendapatkan semua paket diperbarui ke versi terbaru.
Ini untuk solusi contoh aplikasi ASP MVC yang diunduh dari situs web Microsoft.
sumber
Untuk insinyur DevOps / build, Anda mungkin dapat memperbaiki ini berjalan
nuget restore
melawan SLN yang terkena dampak, atau proyek jika Anda tidak memiliki SLN. Saya harus melakukan ini untuk CI / CD builds untuk semua proyek UWP kami.VS2015
call "%VS140COMNTOOLS%VsDevCmd.bat"
atau
VS2017
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
call nuget restore MyStuff.SLN
ataucall nuget restore MyStuff.csproj
jika tidak ada SLN.sumber
Tidak yakin apakah ini akan membantu siapa pun, tetapi saya mengalami masalah ini ketika saya menghapus kode sumber dari mesin lokal saya tanpa pernah menyimpan file solusi ke TFS. (Selama pengembangan awal, saya mengklik kanan dan memeriksa proyek di Solution Explorer, tetapi lupa untuk memeriksa sendiri solusinya.) Ketika saya perlu mengerjakan ini lagi, semua yang saya miliki di TFS adalah file .csproj, tidak ada file .sln. Jadi di VS saya melakukan File -> Source Control -> Advanced - Buka dari Server dan membuka file .csproj. Dari sana saya melakukan Simpan Semua dan bertanya di mana saya ingin menyimpan file .sln. Saya menyimpan file .sln ini ke direktori proyek dengan folder lain (App_Data, App_Start, dll.), Bukan direktori tingkat atas. Saya akhirnya tahu bahwa saya perlu menyimpan file .sln di direktori dari folder proyek sehingga ' berada di level yang sama dengan folder proyek. Semua jalan saya terselesaikan dan saya bisa membangunnya lagi.
sumber
Bagi saya file gitignore saya mengabaikan folder paket saya. Baris gitignore berikut menyebabkan masalah -
Dihapus dan mengembalikan folder paket saya. Semoga ini bisa membantu orang lain.
sumber
Saya memperbaiki kesalahan ini, sebenarnya saya memiliki versi yang berbeda dari MSTest.TestAdapter (1.3.2) di folder paket saya dan dalam referensi file .csproj menunjuk ke MSTest.TestAdapter (1.1.0). Saya telah mengganti semua MSTest.TestAdapter (1.1.0) ke MSTest.TestAdapter (1.3.2), dan ini menyelesaikan masalah saya.
sumber
Saya menyadari pertanyaan ini sudah tua, namun saya mengalami situasi yang sama hari ini dan ingin memberikan 2 sen untuk siapa pun yang baru menemukan masalah ini. Sebuah proyek ASP MVC yang telah saya pindahkan secara manual ke subfolder di solusi saya dan kemudian dihapus dan dibaca ke solusi, menggunakan Visual Studio 2017, memberikan kesalahan yang disebutkan. Memindahkan folder "lib" dan "paket" ke root dari subfolder yang sama dengan proyek MVC memperbaiki masalah saya.
sumber
Saya mengalami masalah yang sama, ternyata salah satu proyek yang saya referensikan berada di luar direktori solusi (dan karena itu tidak berbagi folder '/ paket' yang sama). Solusi yang berhasil bagi saya adalah membuka solusi proyek referensi dan membangunnya di sana. Setelah proyek itu dibangun, kesalahan hilang.
sumber