Assets file project.assets.json bulunamadı. NuGet paketi geri yüklemesini çalıştırma


262

NopCommerce (.NET Core'da yazılmış) kullanmaya çalışıyorum ama projeyi çalıştırmak istediğimde 52 hata mesajı alıyorum Bir nuget paketi geri yükleme çalıştır

Varlıklar dosyası ~ \ obj \ project. asset.json ' bulunamadı. Bu dosyayı oluşturmak için bir NuGet paketi geri yüklemesi çalıştırın. Nop.Web.MVC.Testsote

Çözüme sağ tıklayıp Nuget Paketlerini Geri Yükle'yi seçtiğimde şu mesajı alıyorum:

Tüm paketler zaten kurulu ve geri yüklenecek bir şey yok.

ancak bu 52 Hata hala var ve Araçlar -> NuGet Paket Yöneticisi -> NuGet Paketlerini Çözüm için Yönetin çözümde yüklü bir şey yok, ayrıca VS2017'mi 15.5.4'e güncelledim


NuGet'e geri yükleme izni verdiniz mi? Araçlara, seçeneklere gidin, NuGet'i arayın ve "NuGet'e izin ver ..." seçeneğini işaretleyin.
imps

Mac'te biri varsa, bu sorunu yaşadık ve depo yolundaki boşlukları (git çekme sırasında oluşturulan) kaldırarak düzelttik:% 20Project'im MyProject olur.
David Hague

Yanıtlar:


459

Bu hatayı Araçlar> NuGet Paket Yöneticisi> Paket Yöneticisi Konsolu'ndan düzeltmek için şunu çalıştırın:

dotnet restore

Dotnet cli başlangıçta gerekli tüm dosyaları oluşturmadığı için hata oluşur. Dotnet geri yüklemesi yapmak gerekli dosyaları ekler.


21
Bu aynı zamanda yapı sunucusu için bir düzeltmeydi. Normal NuGet geri yüklemesinden sonra "dotnet restore" komutunu çalıştırmak için bir Komut Satırı adımı eklendi.
Mark

24
Bunu MSBuild'den de yapabilirsiniz: msbuild MySolution.sln / t: Restore
Der_Meister

3
@ Der_Meister / t: Restore seçeneğini eklemek için çözüm benim için çalıştı, ancak çözümü iki kez oluşturmak zorunda kaldım (iki ayrı oluşturma adımı). Önce / t: Restore seçeneğiyle ve sonra onsuz.
Michael

16
@Michael, msbuild MySolution.sln / t'yi deneyin: Restore; Build
Der_Meister

8
Birden fazla çözüm dosyanız varsa yapmanız gerekenlerdotnet restore solutionfilename.sln
ECH

97

Benim durumumda hata GIT deposuydu. Adında boşluklar vardı, bu da projemi geri yükleyemedi

Sorununuz buysa, klonladığınızda GIT deposunu yeniden adlandırın

git clone http://Your%20Project%20With%20Spaces newprojectname

6
Kendi kendime bunun mümkün olamayacağını düşündüm. Diğer önerilen çözümler üzerinde bir saat daha denedikten sonra nihayet bu umutsuzluk denedim ve sorunumu çözdü. Kahretsin adamım!
Stark

2
Bu, yaşadığım sorunu düzeltti, çok teşekkür ederim!
Sharbel

3
Bu cevap yazının başında değil sonunda olmalıdır. Sorunumu çözdü.
CodeWarrior

2
Günümü kurtardın! Teşekkür ederim.
mpatel

3
benim durumumda sadece% 20'yi kaldırıp fiziksel alanımı yeniden adlandırdım ve normal alanla değiştirdim ve her şey iyi çalışıyor
hosam hemaily

42

'Dotnet restore' çalışmazsa, aşağıdaki adımlar yardımcı olabilir:

  1. Visual Studio >> Araçlar >> Seçenekler >> Nuget Manager >> Paket Kaynakları
  2. Herhangi bir üçüncü taraf paket kaynağının işareti kaldırıldı.
  3. Çözümü yeniden oluşturun.

3
Kimlik sunucusu Quickstart # 1: İstemci Kimlik Bilgilerini kullanarak bir API güvenliğini sağlamada bu sorunla karşılaştım ve yukarıdaki çözüm benim için çalıştı.
Tharindu Jayasinghe

Teşekkür ederim! Aslında artık alakalı olmayan bir kaynağı (başka bir çözümden) kaldırdım ve nuget.org ve MSVS Çevrimdışı Paketler kaynaklarında Güncelle düğmesine tıkladım . Bundan sonra dotnet restoreçalıştı.
CPHPython

Teşekkür ederim, hepsi bu!
tdracz

33

NuGet paketlerinin burada yayınlanan diğer yanıtlara göre geri yüklendiğinden emin olduktan sonra Visual Studio'nun kapatılması ve yeniden açılması bu sorunu benim için çözdü.

Düzenleme: Bazen başka bir yeniden başlatmanın hemen ardından Visual Studio'yu yeniden başlatmak zorunda kaldım , bu yüzden yeniden başlatmanın sadece son başlattığınız için yardımcı olmayacağını varsaymayın.


Bu dotnet geri yükleme yaptıktan sonra ve sadece bundan sonra benim için çalıştı inanamıyorum
Gaspa79

Çalışma LAN'ımda NuGet için engelleyici olan bazı ayrı bağlantı sorunları yaşadım. Bilgisayarımı yeniden başlatmak sorunu çözdü!
Neo

Bu gerçekten bir cevap değildir, çünkü bazen CLI araçlarını kullanırsınız getve buildVS'yi açmazsınız. Neden VS ile çalıştığını biliyorum - çünkü VS proje bağımlılıklarını otomatik olarak çözer.
TS

@TS soru "Visual Studio 2017" ile etiketlendi, bu yüzden bunun bir cevap olduğunu söyleyebilirim . Yine de ilginç bir noktaya varıyorsunuz, problem VS çözümleme bağımlılıklarından kaynaklanıyor. Neyin yanlış gittiğine dair daha fazla bilgi varsa, ilginç bir okuma yapacağından eminim
OutstandingBill

+1. Beni yakaladın! VS ile, oh iyi. Onun 15.5 versiyonu arabasıydı. Bence 15.5 / 15.6 referans çözünürlüğü için birçok sorun vardı. Şimdi, yanıt şu stackoverflow.com/a/58548856/1704458
TS

20

Benzer bir mesajla karşılaşan Azure DevOps / VSTS ortamında benimle aynı sorunu yaşayanlara: 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

/t:RestoreDerleme Çözümünde MSBuild Bağımsız Değişkenlerinize ekleyin .


9

Benim için ne zaman - dotnet geri yükleme hala hata oluşuyordu.

gittim

1 Araç -> NuGet Paket Yöneticisi -> Paket Yöneticisi ayarları -> "Nuget Catche (s) üstünde temizle" seçeneğini tıklayın

2 dotnet geri yükleme

çözülen sorunlar.


Bunu bir dahaki sefere deneyeceğim. Genellikle benim için yaş alan benimkinden (VS'yi kapat ve yeniden aç) daha iyi bir yaklaşım olabilir .
OutstandingBill

6

Visual Studio 2017'de lütfen aşağıdaki adımları uygulayın:

1) Araç => Seçenekler => NuGet Paket Yöneticisi => Paket Kaynakları'nı seçin, ardından Microsoft Visual Studio Çevrimdışı Paketler Seçeneğinin işaretini kaldırın . resim açıklamasını buraya girin

2) şimdi Tool => NuGet Package Maneger => Package Manager Console'u açın. 3) PM> dotnet restore'de komutu çalıştırın.

Umarım çalışır ...



5

Seç Araçlar > Nuget Paket Yöneticisi > Paket Yöneticisi Konsolu

Ve sonra Çalıştır:

dotnet restore <project or solution name>

3

cevap biraz geç ama bu değer katacak gibi görünüyor. Hataya bakıldığında, CI / CD boru hattında meydana geliyor gibi görünüyor.

Sadece "dotnet build" komutunu çalıştırmak yeterli olacaktır.

dotnet derlemesi

dotnet build varsayılan olarak "restore" işlevini çalıştırır.


1
Ayrıca boru hattına (derlemeden önce) ".NET core" adımı ekleyerek ve açılır menüden "dotnet restore" komutunu seçerek de elde edilebilir. Burada özellikle VSTS boru hattı hakkında konuşuyorum.
Lech Osiński

3

Yukarıdaki hiçbir şey benim için işe yaramadı. Ancak tüm 'bin' ve 'obj' klasörlerini silmek hile yaptı.


Bir Dockerfile üzerinde çalışırken bu sorun benim için oldu. bu klasörlerin silinmesi kaptaki dotnet geri yüklemesinin düzgün çalışmasını sağlamıştır.
Johannes


2

VSTS kullanırken global.json dosyanızı kontrol edin. Ben sdk sürümü sadece "2.2" olarak ayrıştırma hatasına (ama yerel olarak inşa ederken değil) neden olarak girmişti. Tam sürümü ekleyerek, "2.2.104" sorunu çözdü.


2

Tüm çözümden ziyade çözümümde tek bir proje oluşturmak için bir derleme kanalında 'Visual Studio Build' görevini ayarladığımda Azure DevOps'ta bu hatadan birkaç saat kaybettim.

Bunu yapmak, DevOps'un derleme için hedeflediğiniz proje tarafından başvurulan projelerin hiçbirini (veya muhtemelen bazılarından emin değilim) oluşturmaması anlamına gelir ve bu nedenle bu projeler kendi projelerine sahip olmaz. .asset dosyaları oluşturulur ve bu da bu soruna neden olur.

Benim için çözüm VS Build görevini kullanarak MSBuild görevine takas etmekti. Tek bir proje için MSBuild görevini kullanmak, oluşturduğunuz proje tarafından başvurulan projeleri doğru şekilde oluşturur ve bu hatayı ortadan kaldırır.


2

Bu hata Azure DevOps'taki (TFS) bir yapının parçası olarak oluşursa ve yapınızın zaten bir NuGet geri yükleme görevi varsa, bu hata NuGet geri yükleme görevinin, özellikle özel bir paket kaynağı kullanıyorsanız, tüm paketleri geri yükleyemediğini gösterebilir ( dahili bir NuGet sunucusu gibi). /t:Restore;BuildMSBuild Bağımsız Değişkenlerine eklemek hatayı çözmenin bir yolu gibi görünebilir, ancak bu MSBuild'den ek bir NuGet geri yükleme işlemi gerçekleştirmesini ister. MSBuild Visual Studio'da yapılandırılmış özel paket kaynağını kullandığından bu başarılı olduğuna inanıyorum. Tercih edilen bir çözüm, NuGet geri yükleme görevini düzeltmektir.

NuGet geri yükleme görevi için özel bir paket kaynağı yapılandırmak üzere:

  1. NuGet.configTüm paket kaynaklarını (Microsoft Visual Studio Çevrimdışı Paketleri, nuget.org ve özel paket kaynağınız) listeleyen bir dosya oluşturun ve kaynak denetimine ekleyin.
  2. Kullanılacak yayınlar altındaki Nuget geri yükleme görevinde : NuGet.config dosyamdaki Yayınlar seçeneğini seçin .
  3. Yolunu belirtin NuGet.config.
  4. /t:Restore;BuildSeçeneği MSBuild görevinden kaldırın .

Ek bilgilere buradan ulaşabilirsiniz .


1

Sadece NuGet paketlerini geri yüklemek işe yaramazsa, Araçlar -> Seçenekler -> NuGet Paket Yöneticisi -> Genel altında Paket Geri Yükleme altında "NuGet'in eksik paketleri indirmesine izin ver" seçeneğinin işaretli olduğundan emin olun .

Daha sonra NuGet Paketlerini geri yükleyin VEYA obj ve bin klasörlerini sildikten sonra sadece REBUILD .


1

@ Mostafa-bouzari önerisi yardımcı olmazsa, NuGet'in neden geri yükleyemediği hataları, örneğin proxy'nin arkasındaysanız net sorun nedeniyle, 'Hata listesi' veya 'Çıktı' pencerelerinde dikkatlice kontrol edin.


Benim durumumda, Nuget Restore özel NuGet veri havuzumuza bağlanamadı, çünkü şirket VPN'sine bağlı değildim. Paket Yöneticisi Konsolu günlüklerini kontrol etmek yardımcı oldu.
Alexander Puchkov

1

Oluşturma aracınız Net Core ve Netstandard yeni stil projelerine karşı kullanılacak ve çoğunlukla etkilenecek şekilde restoreayarlanan projelerde yapılacak şekilde ayarlanmadığında bu sorun ortaya çıkar .PackageReferencepackages.config

Visual Studio'yu açıp oluşturduğunuzda, bunu sizin için çözer. Ancak otomasyon, CLI araçları kullanıyorsanız, bu sorunu görürsünüz.

Burada birçok çözüm sunulmaktadır. Ama hatırlamanız gereken tek şey, zorlamanız gerekiyor restore. Bazı durumlarda derlemeden dotnet restoreönce kullanırsınız . MsBuild kullanarak oluşturursanız /t:Restore, komutunuza switch ekleyin .

Alt satırda, geri yüklemenin neden etkinleştirilemediğini görmeniz gerekir. Kötü nuget kaynağı veya eksik geri yükleme eylemi veya eski nuget.exe veya yukarıdakilerin tümü.


1

Karşılaştığım çok garip bir deneyim!

Daha önce GIT bash ve GIT cmd-Line ile klonlamıştım, yukarıdaki sorunlarla karşılaştım.

Daha sonra Tortoise-GIT ile klonladım ve her şey beklendiği gibi çalıştı.

Bu çılgın bir cevap olabilir, ancak bir kez denemek zaman kazandırabilir!


1

VS-2019'a 16.4.0'a bir WinForms Core 3.1 projesi (proje şablonlarından) ekledikten ve kutudan çıkarmaya çalıştıktan sonra bunu gördüm. Temiz veya tüm çözüm işe yaramadı.

Çözümümü yeniden yükledim .. Dosya / Kapat Çözümü ve sonra yeniden açıp yeniden oluşturmak sorunu çözdü.


0

VS2017'de nokta net çekirdeğinde bir lambda oluşturduğumda hatayı aldım. Benim için işe yarayan projeyi boşaltmak ve geri yüklemekti.


0

bundan sonra VS'nizi paket yöneticisi konsolunda dotnet restore komutunu çalıştırın.


0

Bir diğeri, Dropbox'ı kullanıyorsanız, Conflicteddosya adlarını kontrol edin, deponuzda bir arama yapın ve çakışan tüm dosyaları silin.

Dosyaları hareket ettirdiyseniz, bu olmuş olabilir.


0

Bu hatanın nedeni: enjekte edilen Nuget'i dosya gezginde kaldırmanız gerekir. Çözüm: Bu Nuget'i sisteminizden kaldırdıktan sonra, aşağıdaki konumdan kaldırın. Araç => Seçenekler => NuGet Paket Yöneticisi => Paket Kaynakları'nı seçin, ardından Microsoft Visual Studio Çevrimdışı Paketler Seçeneğinin işaretini kaldırın



0

Benim durumumda Kullanılabilir Paket Kaynakları ile ilgili bir sorun yaşadım. Yerel nuget depo klasörünü yeni bir yola taşıdım, ancak Nuget Available Package Sources'da güncellemedim. Yol sorununu düzelttiğimde, Kullanılabilir Paket Kaynaklarında güncelleyin ve bundan sonra her şey (nuget restor, vb.) İyi çalışıyordu.


0

Benim için nuget kaynağı kimlik bilgileri sorunu olduğu ortaya çıktı. Kısa bir süre önce bir nexus sunucusuna erişmek için şifremi değiştirmiştim ve Visual Studio, Windows kimlik yöneticisi aracılığıyla bu sunucudaki bir külçeye erişmeye çalışırken hala eski şifreyi kullanıyordu. Düzeltmek için, kimlik bilgisi yöneticisindeki bu eski kimlik bilgileri için girişi silmek zorunda kaldım ve sonra, bir nuget geri yüklemesi yaptıktan sonra, kimlik bilgisi yöneticisine tekrar kaydedilen yeni şifreyi girmeme izin veren bir şifre istedi. Kimlik bilgisi yöneticisine cmd satırından CmdKey.exe aracını kullanarak erişebilirsiniz.


0

Bunu deneyin (Benim için çalıştı):

  • VS'yi Yönetici olarak çalıştır
  • NuGet'i en son sürüme manuel güncelleme
  • Projedeki tüm bin ve obj dosyalarını silin.
  • VS'yi yeniden başlat
  • recompile

0

Aşağıdakiler için gidebilirsiniz: Araçlar> NuGet Paket Yöneticisi> Paket Yöneticisi Konsolu

Ve sonra Çalıştır:

dotnet geri yükleme

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.