Paket NuGet tidak ada

297

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

  1. Saya tidak punya folder .nuget di solusi saya.
  2. Saya memiliki folder paket dalam solusi dan ketika saya menghapusnya, sepertinya NuGet membangun kembali dependensi tetapi proyek masih memiliki kesalahan di atas.
  3. Saya mencoba menghapus proyek dari TFS dan tidak memperbaikinya.
  4. Bersamaan dengan kesalahan di atas, semua referensi dalam proyek memiliki tanda-tanda peringatan kuning dan mengatakan mereka hilang.
  5. Ketika saya memeriksa Manajer Paket NuGet untuk proyek tersebut, segala sesuatu yang "hilang" memiliki tanda centang hijau di sebelahnya, termasuk Microsoft.Net.Compiler.
  6. Saya mencoba menambahkan proyek Web API / MVC baru dan menghadapi masalah serupa di mana sebagian besar referensi seperti Owin "hilang" dengan tanda peringatan kuning.
Pertanyaan
sumber
suara untuk menutup pertanyaan ini karena jumlah geser dari kualitas rendah yang diposting jawaban oleh pengguna baru.
ZF007

Jawaban:

265

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.

Tiberiu Craciun
sumber
2
Menyalin folder Microsoft.Net.Compiler ... dari folder paket lama ke lokasi paket baru setelah pindah jika hilang mungkin merupakan langkah terakhir yang diperlukan.
Justin Wignall 6-15
2
Saya baru saja menghapus SATU paket dari komputer saya dan itu berfungsi.
SpoiledTechie.com
1
Saya juga mendapatkan kesalahan ketika memindahkan proyek secara fisik ke lokasi yang berbeda dalam solusi Visual Studio. Tidak ada solusi di halaman ini yang berfungsi, jadi saya membuat salinan proyek (pada sistem file) dan sepenuhnya menghapus semua referensi ke proyek asli di VS. Saya kemudian menciptakan kembali proyek dan menyalin potongan-potongan ke dalamnya (dari salinan yang saya buat). Lelah, tapi berhasil.
Andrew Jens
2
Saya juga memiliki masalah yang sama setelah memindahkan proyek dari satu lokasi ke lokasi lain. Memperbaiki jalur paket dalam file ".csproj" memperbaiki masalah ini.
Nirman
2
@ MiłoszWieczorek Saya mencoba menjalankan perintah di Package Manager Console dan itu tidak menyelesaikan masalah. Itu memuat ulang semua paket, tetapi referensi masih belum ditemukan.
Francisco d'Anconia
360

Saya memecahkan masalah saya dengan menghapus kode ini dari .csprojfile:

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable 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('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
DKR
sumber
5
Jawaban yang diterima tidak akan berfungsi karena saya mereferensikan proyek dalam beberapa solusi terpisah. Ini adalah satu-satunya perbaikan. Mengomentari itu dan itu bekerja seperti pesona.
Levi Fuller
31
Saya bisa saja salah, tetapi saya percaya ini adalah "memukul lalat dengan palu". Jika, karena alasan apa pun, lokasi yang dipublikasikan kehilangan paket nuget lain yang diperlukan, itu tidak akan salah, memberikan Anda false positive (mis. Penyebaran berhasil, tetapi sistem gagal). Bukan penggemar, tapi saya tidak akan menurunkannya karena ada aspek nuget yang masih belum saya kenal.
HeyZiko
4
Ini juga bekerja untuk saya. Aneh bahwa pesan kesalahan itu dikodekan dalam file proj itu sendiri ...
Ryan Peters
7
Mengonfirmasi masalah ini masih ada di VS 2017. Saya memigrasi proyek dari visual studio 2015 ke 2017 dan mendapatkan pesan kesalahan ini saat kompilasi pertama pada 2017. Ini memperbaiki bug.
Tom McDonald
2
Mengapa menghapus fungsionalitas, berisiko melanggar proyek Anda, dll dengan melakukan ini? Seperti yang ditunjukkan @HeyZiko, ini dapat menyebabkan masalah di kemudian hari. Saya hanya bisa melakukan kesalahan yang menyatakan "Aktifkan pengembalian paket". Lihat jawaban saya di suatu tempat di halaman ini ...
Nicow
45

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.

Update-Package –reinstall

Memperbarui:

Anda dapat memberikan nama proyek tertentu sebagai parameter.

Update-Package –reinstall -ProjectName SampleApp
Shyam Bhagat
sumber
1
Ini berhasil untuk saya. Kesalahan muncul setelah saya setelah mendorong perubahan melalui git pada satu sistem dan menariknya pada yang lain. Mungkin .gitignore saya tidak dikonfigurasikan dengan benar untuk paket nuget.
Patrick Borkowicz
16
Hati-hati ... ini memperbarui paket untuk seluruh solusi, bukan hanya proyek.
SO Pengguna
1
Ini berhasil untuk saya. NuGet terus mengeluh tentang paket yang hilang, tetapi Visual Studio tidak akan menyelesaikan secara otomatis. Butuh beberapa menit untuk berjalan sepenuhnya, tetapi perintah ini memperbaiki masalah saya.
Nick Alexander
8
Anda dapat menambahkan parameter -ProjectName untuk membuatnya hanya untuk proyek tertentu, bukan seluruh solusi.
Miłosz Wieczorek
2
VS2017 jatuh setengah jalan melalui ini dan itu menghancurkan segalanya
gulungan
19

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.

Ryan Russon
sumber
2
Saya melakukan klik kanan pada Solusi dan Restore Nuget Packages.
Vitor Canova
1
Saya tidak punya Paket Kembalikan Nuget ketika saya klik kanan pada solusi .... Saya menggunakan VS 2013 ..
Ziggler
juga harus memastikan bahwa itu mengembalikan ke paket yang tepat. periksa .csproj menggunakan note / Edit * .csproj untuk lokasi folder paket
AceMark
15

Tiberiu benar. Saya harus mengedit file .csproj saya karena file dipindahkan dan menyebabkan masalah ini

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

Saya mengubah di bagian atas file dan di bagian bawah

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
Tom Stickel
sumber
apa yang berhasil bagi saya pada akhirnya adalah hanya mengedit baris di akhir file, tetapi tidak di atas
ISAE
15

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:

<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.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

Klik kanan nama proyek -> Muat Ulang Proyek

Akhirnya Bangun solusi Anda.

Abdullah
sumber
Setelah memperbaiki secara manual jalan di csproj saya menghapus bagian EnsureNuGetPackageBuildImports dan itu bekerja dengan sempurna. terima kasih
willyMon
11

Saya memecahkan masalah ini dengan menghapus kode berikut dari file .csproj

<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('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />

Mohsin Awan
sumber
1
Tapi mengapa ini salah? Bug di Visual Studio?
Pelindung satu
8

Kombinasi dari 2 jawaban berhasil untuk saya. Pertama saya memodifikasi file .csproj untuk menghapus referensi ke versi 1.0.0

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

dan kemudian melakukannya

Update-Package -Reinstall

dari dan itu berhasil.

Prakrithi
sumber
6

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.

masukkan deskripsi gambar di sini

John Peters
sumber
6

Cukup aktifkan Pemulihan Paket NuGet. Klik kanan solusi Anda> pilih '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.

Nicow
sumber
Terima kasih!! Saya juga menghadapi situasi yang sama, dan 'Aktifkan Pemulihan Paket NuGet' berhasil.
Jain Prince
18
Itu tidak mengganggu bagi saya, ia mengatakan, "Semua paket sudah diinstal dan tidak ada yang mengembalikan."
Dalibor
5

Saya menggunakan VS2012 dan menghadapi kesalahan yang sama. Saya menghapus tag Target berikut dari file .csproj dan mulai mengkompilasi tanpa kesalahan.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>
MAK
sumber
5

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:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

Ketika paket saya.config hanya mereferensikan yang berikut:

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

Menghapus item 1.0.0 dari file .csproj memperbaiki masalah.

Brian Vander Plaats
sumber
2

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

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

MEMPERBARUI:

URL API NuGet telah berubah untuk v3 (saat ini pada September 2016). Dari https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
Madannes
sumber
1

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.

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

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.

Peter Ennis
sumber
1

Solusi yang berfungsi dalam kasus saya - Visual Studio 2015 Enterprice, project .NET 4.6.1

  1. Tingkatkan ke Perbarui 3
  2. Instal alat pengembang Web

Instalasi Visual Studio Wizzard

Norbert Rozmus
sumber
1

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.

Ian Hale
sumber
1

Saya memiliki masalah ini sebagai bangunan gagal di Azure, ketika digunakan dari Git.

Ternyata .gitignore saya tidak termasuk buildfolder ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props.

Setelah buildfolder (paksa) berkomitmen untuk Git, masalah terselesaikan.

Neil Thompson
sumber
1

Saya memecahkan masalah yang sama dengan langkah-langkah berikut

  1. Paket yang dihapus <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />dari file package.config.
  2. 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>

    1. Buka konsol manajer paket dan jalankan perintah Update-Package –reinstall

Poin # 2 dan 3 diberikan oleh pengguna lain dan saya menghargai pengguna tersebut. Poin # 1, menghapus file Microsoft.CodeDom.Providers.DotNetCompilerPlatformfrom 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.

Karthik
sumber
0

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.

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

Saya menyebut skrip powershell ini di build saya di jalur script Pre-Build masukkan deskripsi gambar di sini

Nick Rubino
sumber
0

Milik saya berfungsi ketika saya menyalin folder paket bersama dengan file solusi dan folder proyek. Saya hanya tidak menyalin folder paket dari tempat sebelumnya.

pengguna1429899
sumber
0

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

Parama Dharmika
sumber
0

Komentari Opsi Penyusun di WebConfig:

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

Perbarui Versi Terbaru Paket di File Konfigurasi Paket

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

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.

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
Vikas Bansal
sumber
0

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.TestAdapterpaket 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 2017dan .Net framework 4.7, itu bisa terjadi di versi lain

Saravanan
sumber
1
Saya telah persis masalah itu menggunakan VS2017, .Net4.7 dan proyek pengujian unit. Proyek itu ditambahkan ke beberapa solusi. Pemulihan otomatis berfungsi tetapi ke tempat yang salah. Ganti dengan $(SolutionDir)kerja tetapi pembaruan gagal. Saya bertanya di sini . Apakah Anda menemukan solusi?
Sebastian Schumann
0

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.

pkr298
sumber
0

Untuk insinyur DevOps / build, Anda mungkin dapat memperbaiki ini berjalan nuget restoremelawan SLN yang terkena dampak, atau proyek jika Anda tidak memiliki SLN. Saya harus melakukan ini untuk CI / CD builds untuk semua proyek UWP kami.

  1. Pastikan nuget diinstal pada slave build baik di Visual Studio atau mandiri. Jika yang terakhir, pastikan ada di PATH dan lewati langkah 2.
  2. Buka konsol VS Dev CMD, atau muat melalui konsol yang sudah terbuka, yang dapat Anda lakukan dengan instruksi di bawah ini:
    VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    atau
    VS2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. call nuget restore MyStuff.SLNatau call nuget restore MyStuff.csprojjika tidak ada SLN.
kayleeFrye_onDeck
sumber
0

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.

chersull_99
sumber
0

Bagi saya file gitignore saya mengabaikan folder paket saya. Baris gitignore berikut menyebabkan masalah -

**/packages/*

Dihapus dan mengembalikan folder paket saya. Semoga ini bisa membantu orang lain.

bsod_
sumber
0

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.

Irshad Ahmed Akhonzada
sumber
0

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.

JP Sietsma
sumber
0

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.

bmontalvo
sumber