File aset project.assets.json tidak ditemukan. Jalankan pengembalian paket NuGet

261

Saya mencoba menggunakan nopCommerce (Yang ditulis dalam .NET Core) tetapi ketika saya ingin menjalankan proyek saya menghadapi 52 Kesalahan memberitahu saya Jalankan pengembalian paket nuget

File aset ~ \ obj \ proyek. assets.json ' tidak ditemukan. Jalankan pengembalian paket NuGet untuk menghasilkan file ini. Nop.Web.MVC.Testsote

ketika saya menggunakan klik kanan pada solusi dan memilih Kembalikan Paket Nuget saya mendapatkan pesan ini:

Semua paket sudah diinstal dan tidak ada yang mengembalikan.

tetapi 52 Kesalahan itu masih ada dan di Alat -> Pengelola Paket NuGet -> Kelola Paket NuGet untuk Solusi tidak ada yang diinstal pada solusi, juga Saya Baru-baru ini memperbarui VS2017 saya ke 15.5.4

Jangan pernah percaya
sumber
Sudahkah Anda memberikan izin kepada NuGet untuk memulihkan? Buka alat, opsi, cari NuGet, dan centang opsi "Izinkan NuGet ...".
imp
Jika ada orang di Mac, kami memiliki masalah ini dan memperbaikinya dengan menghapus spasi di jalur repositori (yang dibuat selama tarikan git): My% 20Project menjadi MyProject.
David Hague

Jawaban:

456

Untuk memperbaiki kesalahan ini dari Tools> NuGet Package Manager> Package Manager Console jalankan saja:

dotnet restore

Kesalahan terjadi karena dotnet cli tidak membuat semua file yang diperlukan pada awalnya. Melakukan pengembalian dotnet menambahkan file yang diperlukan.

Mostafa Bouzari
sumber
21
Ini juga merupakan perbaikan untuk server build. Menambahkan langkah Command Line untuk menjalankan "pemulihan dotnet" setelah pemulihan NuGet normal.
Tandai
24
Anda dapat melakukannya dari MSBuild juga: msbuild MySolution.sln / t: Restore
Der_Meister
3
@ Der_Meister solusi untuk menambahkan / t: Kembalikan opsi bekerja untuk saya, namun, saya harus membangun solusi dua kali (dua langkah build terpisah). Pertama dengan opsi / t: Restore dan kemudian kembali tanpa itu.
Michael
16
@Michael, coba msbuild MySolution.sln / t: Restore; Build
Der_Meister
8
Jika Anda memiliki lebih dari satu file solusi, yang perlu Anda lakukandotnet restore solutionfilename.sln
ECH
97

Dalam kasus saya kesalahannya adalah repositori GIT. Itu memiliki ruang dalam nama, membuat proyek saya tidak dapat dipulihkan

Jika ini masalah Anda, cukup ganti nama repositori GIT saat Anda mengkloning

git clone http://Your%20Project%20With%20Spaces newprojectname
Sebastian Castaldi
sumber
6
Saya berpikir bahwa ini tidak mungkin. Setelah mencoba selama satu jam lagi pada solusi yang diusulkan saya akhirnya mencoba ini karena putus asa dan itu memecahkan masalah saya. Sialan!
Stark
2
Ini memperbaiki masalah yang saya alami, terima kasih banyak!
Sharbel
3
Jawaban ini harus di awal posting, bukan di akhir. Memecahkan masalah saya.
CodeWarrior
2
Kamu menyelamatkan hariku! Terima kasih.
mpatel
3
dalam kasus saya, saya hanya mengganti nama folder fisik saya dengan menghapus% 20 dan menggantinya dengan ruang normal dan semuanya berfungsi dengan baik
hosam hemaily
42

Jika 'dotnet restore' tidak berfungsi, langkah-langkah berikut dapat membantu:

  1. Visual Studio >> Alat >> Opsi >> Nuget Manager >> Sumber Paket
  2. Hapus centang pada sumber paket pihak ketiga mana pun.
  3. Membangun kembali solusi.
prisan
sumber
3
Saya baru-baru ini mengalami masalah ini untuk Quickity server Identity # 1: Mengamankan API menggunakan Kredensial Klien dan solusi di atas bekerja untuk saya.
Tharindu Jayasinghe
Terima kasih! Saya benar-benar menghapus satu sumber yang tidak relevan lagi (dari solusi lain) dan pada sumber Paket nuget.org dan MSVS Saya mengeklik tombol Perbarui . Setelah ini dotnet restoreberhasil.
CPHPython
Terima kasih, itu dia!
tdracz
33

Menutup dan membuka kembali Visual Studio memecahkan masalah ini untuk saya, setelah saya memastikan paket NuGet telah dikembalikan sesuai jawaban lain yang diposting di sini.

Tagihan Luar Biasa
sumber
Tidak percaya ini berhasil juga untuk saya setelah melakukan pemulihan dotnet dan hanya setelah ini
Gaspa79
Saya memiliki beberapa masalah konektivitas terpisah pada LAN pekerjaan saya yang menghambat NuGet. Reboot PC saya menyelesaikan masalah!
Neo
Ini sebenarnya bukan jawaban karena kadang-kadang Anda menggunakan alat CLI untuk getdan builddan Anda tidak membuka VS. Saya tahu mengapa ia bekerja dengan VS - karena VS secara otomatis menyelesaikan dependensi proyek.
TS
@TS pertanyaan ini ditandai dengan "Visual Studio 2017", jadi saya akan mengatakan ini adalah jawabannya. Anda meningkatkan poin yang menarik, bahwa masalahnya terletak pada dependensi penyelesaian VS. Jika Anda memiliki informasi lebih lanjut tentang apa yang salah, saya yakin itu akan membuat bacaan yang menarik :)
OutstandingBill
+1. Kau menangkapku! Dengan VS, oh well. Versi 15.5-nya buggy. Saya pikir 15.5 / 15.6 memiliki sejumlah masalah untuk resolusi referensi. Sekarang, inilah jawabannya stackoverflow.com/a/58548856/1704458
TS
20

Bagi mereka yang memiliki masalah yang sama dengan saya di lingkungan Azure DevOps / VSTS menemukan pesan serupa: C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file

Tambahkan /t:Restoreke MSBuild Arguments Anda di Build Solution.

taylorswiftfan
sumber
9

Bagi saya ketika saya melakukannya - dotnet restore masih terjadi kesalahan.

saya pergi ke

1 Alat -> NuGet Package Maneger -> Pengaturan Package Manager -> klik pada "Clear on Nuget Catche (s)"

Mengembalikan 2 dotnet

masalah terselesaikan.

Mempercepat
sumber
Saya akan coba ini lain kali hal itu terjadi. Ini bisa menjadi pendekatan yang lebih baik daripada saya (tutup dan buka kembali VS) yang biasanya memakan waktu lama bagi saya.
OutstandingBill
6

Di visual studio 2017 silakan lakukan langkah-langkah berikut:

1) pilih Alat => Opsi => NuGet Package Manager => Sumber Paket kemudian hapus centang Opsi Paket Microsoft Visual Studio Offline . masukkan deskripsi gambar di sini

2) sekarang buka Tool => NuGet Package Maneger => Package Manager Console. 3) jalankan perintah di PM> dotnet restore.

Semoga ini berhasil ...

Manoj Gupta
sumber
6

Bagi saya, saya memutakhirkan NuGet.exe dari 3,4 ke 4,9 karena 3,4 tidak mengerti cara mengembalikan paket untuk .NET Core.

Untuk detailnya, lihat pemulihan dotnet vs. pemulihan nuget dengan teamcity

pengguna8128167
sumber
Ya - Saya menemukan ini ketika kami mulai memigrasikan proyek .Net Framework lama ke .csprojformat proyek baru .
StuartLC
5

Pilih Peralatan > Manajer Paket NuGet > Konsol Manajer Paket

Dan kemudian Jalankan:

dotnet restore <project or solution name>
Andre Mesquita
sumber
3

sedikit terlambat untuk jawabannya tetapi sepertinya ini akan menambah nilai. Melihat kesalahan - tampaknya terjadi pada pipa CI / CD.

Menjalankan "dotnet build" saja sudah cukup.

build dotnet

dotnet build menjalankan "restore" secara default.

Sunny Sharma
sumber
1
Juga dapat dicapai dengan menambahkan langkah ".NET core" ke pipeline (sebelum build), dan memilih perintah "dotnet restore" dari dropdown. Saya berbicara secara khusus tentang pipa VSTS di sini.
Lech Osiński
3

Tidak ada yang berhasil bagi saya di atas. Tetapi hanya menghapus semua folder 'bin' dan 'obj' berhasil.

alexbk66
sumber
Masalah ini terjadi pada saya ketika saya bekerja di Dockerfile. menghapus folder-folder tersebut membuat pemulihan dotnet dalam wadah berfungsi dengan baik.
Johannes
3

Dipecahkan dengan menambahkan / t: Pulihkan; Bangun ke MSBuild Argumen

Abdulsamet İLERİ
sumber
2

Saat menggunakan VSTS, periksa file global.json Anda. Saya telah memasukkan versi SDK hanya "2.2" yang menyebabkan kesalahan parse (tetapi tidak ketika membangun secara lokal). Menambahkan versi lengkap, "2.2.104" memecahkan masalah.

Rob Minnis
sumber
2

Saya kehilangan beberapa jam pada kesalahan ini di Azure DevOps ketika saya mengatur tugas 'Visual Studio Build' dalam pipa build untuk membangun proyek individu dalam solusi saya, daripada seluruh solusi.

Melakukan itu berarti bahwa DevOps tidak membangun (atau mungkin beberapa, saya tidak yakin yang mana) dari proyek yang dirujuk oleh proyek yang telah Anda targetkan untuk pembangunan, dan oleh karena itu proyek-proyek itu tidak akan memiliki proyek mereka. File .asset dihasilkan, yang kemudian menyebabkan masalah ini.

Solusi bagi saya adalah untuk menukar dari menggunakan tugas VS Build ke tugas MSBuild. Menggunakan tugas MSBuild untuk proyek individu dengan benar membangun setiap proyek yang dirujuk oleh proyek yang Anda bangun dan menghilangkan kesalahan ini.

TomRedox
sumber
1

Jika hanya mengembalikan paket NuGet tidak berfungsi, pastikan di Tools -> Options -> NuGet Package Manager -> General di bawah Package Restore bahwa "Izinkan NuGet untuk mengunduh paket yang hilang" dicentang.

Kemudian Kembalikan Paket NuGet lagi ATAU hanya BANGUN KEMBALI setelah menghapus folder obj dan bin.

NexX
sumber
1

Jika @ mostafa-bouzari saran tidak membantu, periksa dengan hati-hati di 'daftar Error' atau 'keluaran' jendela untuk kesalahan mengapa nuget tidak dapat mengembalikan, misalnya karena masalah bersih jika Anda berada di belakang proxy.

flam3
sumber
Dalam kasus saya, Nuget Restore tidak dapat terhubung ke repositori NuGet pribadi kami, karena saya tidak terhubung ke VPN perusahaan. Memeriksa log Konsol Manajer Paket membantu.
Alexander Puchkov
1

Masalah ini terjadi ketika alat bangun Anda tidak disetel untuk dilakukan restorepada proyek yang akan digunakan PackageReferencevspackages.config dan sebagian besar memengaruhi Net Core dan Netstandard proyek gaya baru.

Ketika Anda membuka Visual Studio dan membangun, itu menyelesaikan ini untuk Anda. Tetapi jika Anda menggunakan otomatisasi, alat CLI, Anda melihat masalah ini.

Banyak solusi yang ditawarkan di sini. Tapi yang perlu Anda ingat, Anda harus paksakan restore. Dalam beberapa kasus, Anda menggunakan dotnet restoresebelum membangun. Jika Anda membangun menggunakan MsBuild tambahkan saja /t:Restoreberalih ke perintah Anda.

Intinya, Anda perlu melihat mengapa memulihkan tidak dapat diaktifkan. Sumber nuget yang buruk atau tindakan pemulihan yang hilang, atau nuget.exe yang ketinggalan zaman, atau semua hal di atas.

TS
sumber
1

Pengalaman yang sangat aneh yang saya temui!

Saya telah kloning dengan GIT bash dan GIT cmd-Line sebelumnya, saya mengalami masalah di atas.

Kemudian, saya kloning dengan Tortoise-GIT dan semuanya berjalan seperti yang diharapkan.

Mungkin ini adalah jawaban yang gila, tetapi mencoba ini sekali dapat menghemat waktu Anda!

Bikram
sumber
1

Terlihat ini setelah menambahkan proyek WinForms Core 3.1 (dari templat proyek) pada VS-2019 vs 16.4.0 dan mencoba untuk menjalankannya di luar kotak. Bersihkan atau Rebuild seluruh solusi tidak berfungsi.

Saya baru saja memuat ulang solusi saya .. itu File / Tutup Solusi dan kemudian buka kembali dan membangun kembali itu memecahkan masalah.

Barang
sumber
1

Jika kesalahan ini terjadi sebagai bagian dari pembangunan di Azure DevOps (TFS) dan bangunan Anda sudah memiliki tugas pemulihan NuGet , kesalahan ini mungkin menunjukkan tugas pemulihan NuGet tidak dapat mengembalikan semua paket, terutama jika Anda menggunakan sumber paket khusus ( seperti server NuGet internal). Menambahkan/t:Restore;Build ke MSBuild Arguments tampaknya menjadi salah satu cara untuk menyelesaikan kesalahan, tetapi ini meminta MSBuild untuk melakukan operasi pemulihan NuGet tambahan. Saya percaya ini berhasil karena MSBuild menggunakan sumber paket kustom yang dikonfigurasi dalam Visual Studio. Solusi yang lebih baik adalah memperbaiki tugas pemulihan NuGet.

Untuk mengkonfigurasi sumber paket khusus untuk tugas pemulihan NuGet:

  1. Buat NuGet.configfile yang mencantumkan semua sumber paket (Paket Microsoft Visual Studio Offline, nuget.org, dan sumber paket kustom Anda) dan menambahkannya ke kontrol sumber.
  2. Dalam tugas mengembalikan Nuget di bawah Umpan untuk digunakan: pilih opsi Umpan di NuGet.config saya .
  3. Berikan jalan untuk NuGet.config.
  4. Hapus /t:Restore;Buildopsi dari tugas MSBuild.

Informasi tambahan tersedia di sini .

Jeremiah Mercier
sumber
0

Saya mendapat kesalahan ketika saya membuat lambda di dot net core di VS2017. Apa yang berhasil bagi saya adalah membongkar proyek dan memuatnya kembali.

Boms
sumber
0

jalankan VS Anda sebagai administrator setelah itu dalam paket manager konsol jalankan dotnet restore.

Lucas Brito
sumber
0

Yang lain, jika kebetulan Anda menggunakan Dropbox, periksa Conflictednama file, lakukan pencarian di repo Anda dan hapus semua file yang bertentangan.

Ini mungkin terjadi jika Anda telah memindahkan file.

Jose A
sumber
0

Penyebab kerusakan ini: Anda harus menghapus Nuget yang disuntikkan di file explorer. Solusi: Setelah Anda menghapus Nuget itu di sistem Anda, lalu hapus dari lokasi berikut. pilih Tool => Opsi => NuGet Package Manager => Sumber Paket kemudian hapus centang Opsi Paket Microsoft Visual Studio Offline

balaji s
sumber
0

Dalam kasus saya, saya punya masalah dengan Sumber Paket yang Tersedia. Saya telah memindahkan folder repositori nuget lokal ke jalur baru tapi saya tidak memperbaruinya di Sumber Paket Nuget Yang Tersedia. Ketika saya sudah memperbaiki masalah jalur, perbarui di Sumber Paket yang Tersedia dan setelah itu semuanya (nuget restor, dll) bekerja dengan baik.

pengguna11990436
sumber
0

Bagi saya itu ternyata menjadi masalah kredensial sumber nuget. Saya baru-baru ini mengubah kata sandi saya untuk mengakses server nexus dan studio visual masih menggunakan kata sandi lama ketika mencoba mengakses nuget di server itu melalui windows credential manager. Untuk memperbaikinya, saya harus menghapus entri untuk kredensial yang sudah ketinggalan zaman di manajer kredensial dan setelah, ketika saya melakukan pemulihan nuget, itu meminta saya untuk kata sandi membiarkan saya memasukkan kata sandi baru, yang disimpan di manajer kredensial lagi. Anda dapat mengakses manajer kredensial dari baris cmd menggunakan CmdKey.exe.

John Volkya
sumber
0

Coba ini (Ini berhasil untuk saya):

  • Jalankan VS sebagai Administrator
  • Pembaruan manual NuGet ke versi terbaru
  • Hapus semua file bin dan obj di proyek.
  • Mulai ulang VS
  • Kompilasi ulang
dalfonsop
sumber
0

Anda bisa menggunakan: Tools> NuGet Package Manager> Package Manager Console

Dan kemudian Jalankan:

mengembalikan dotnet

tujuh
sumber