Aracılığıyla paylaş


Paket geri yükleme hatalarını giderme

Bu makale, paketleri geri yüklerken sık karşılaşılan hatalara ve bunları çözme adımlarına odaklanır.

Paket Geri Yükleme, tüm paket bağımlılıklarını proje dosyanızdaki (.csproj) veya packages.config dosyanızdaki paket başvurularıyla eşleşen doğru duruma yüklemeyi dener. (Visual Studio'da, başvurular Çözüm Gezgini içinde Dependencies \ NuGet veya References düğümü altında görünür.) Paketleri geri yüklemek için gerekli adımları izlemek için bkz. Paketleri geri yükleme. Proje dosyanızdaki (.csproj) paket başvuruları veya packages.config dosyanız yanlışsa (Paket Geri Yükleme'nin ardından istediğiniz durumla eşleşmiyorsa), Paket Geri Yükleme'yi kullanmak yerine paketleri yüklemeniz veya güncelleştirmeniz gerekir.

Buradaki yönergeler size uygun değilse, senaryonuzu daha dikkatli inceleyebilmemiz için lütfen GitHub bir sorun oluşturun. Daha fazla bilgi için sizinle iletişim kurmamıza olanak sağlamadığından, bu sayfada görünen "Bu sayfa yararlı mı?" denetimini kullanmayın.

Visual Studio kullanıcıları için hızlı çözüm

Visual Studio kullanıyorsanız, önce paket geri yüklemeyi aşağıdaki gibi etkinleştirin. Aksi takdirde, izleyen bölümlere geçin.

  1. Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi Ayarlar menü komutunu seçin.
  2. Paket Geri Yükleme altında her iki seçeneği de ayarlayın.
  3. Tamam’ı seçin.
  4. Projenizi yeniden oluşturun.

Enable NuGet package restore in Tool/Options

Bu ayarlar dosyanızda NuGet.Config da değiştirilebilir; onay bölümüne bakın. Projeniz MSBuild tümleşik paket geri yüklemesini kullanan eski bir projeyse, otomatik paket geri yüklemesine geçmeniz gerekebilir.

Bu proje, bu bilgisayarda eksik olan NuGet pakete başvurur

Tamamlandı hata iletisi:

This project references NuGet package(s) that are missing on this computer.
Use NuGet Package Restore to download them. The missing file is {name}.

Bu hata, bir veya daha fazla NuGet paketine başvuru içeren bir proje oluşturmaya çalıştığınızda oluşur, ancak bu paketler bilgisayarda veya projede yüklü değildir.

  • PackageReference yönetim biçimi kullanılırken, bu hata packages.config PackageReference geçişine kalan bir hata olabilir ve proje dosyasından el ile kaldırılması gerekir.
  • packages.configkullanırken hata, paketin çözüm kökündeki packages klasöre yüklenmediği anlamına gelir.

Bu durum genellikle projenin kaynak kodunu kaynak denetiminden veya başka bir indirmeden aldığınızda oluşur. Paketler genellikle kaynak denetiminden veya indirmelerden atlanır çünkü nuget.org gibi paket akışlarından geri yüklenebilirler (bkz . Paketler ve kaynak denetimi). Bunları dahil ederek depoyu şişirebilirsiniz veya gereksiz büyük .zip dosyaları oluşturabilirsiniz.

Proje dosyanız paket konumlarının mutlak yollarını içeriyorsa ve projeyi taşırsanız da hata oluşabilir.

Paketleri geri yüklemek için aşağıdaki yöntemlerden birini kullanın:

Başarılı bir geri yüklemeden sonra paket genel paketler klasöründe bulunmalıdır. PackageReference kullanan projeler için, geri yükleme dosyasını yeniden oluşturmalıdır obj/project.assets.json ; kullanan packages.configprojeler için paket projenin packages klasöründe görünmelidir. Proje artık başarıyla derlenmelidir. Aksi takdirde, sizi takip edebilmemiz için GitHub bir sorun bildirin.

Assets file project.assets.json bulunamadı

Tamamlandı hata iletisi:

Assets file '<path>\project.assets.json' not found. Run a NuGet package restore to generate this file.

Dosya, project.assets.json packageReference yönetim biçimini kullanırken projenin bağımlılık grafiğini korur ve bu, gerekli tüm paketlerin bilgisayara yüklendiğinden emin olmak için kullanılır. Bu dosya, paket geri yükleme aracılığıyla dinamik olarak oluşturulduğundan, genellikle kaynak denetimine eklenmez. Sonuç olarak bu hata, paketleri otomatik olarak geri yüklemeyen bir araçla msbuild proje oluştururken oluşur.

Bu durumda, komutunu ve ardından komutunu çalıştırın msbuild -t:restore veya kullanın dotnet build (paketleri otomatik olarak geri msbuildyükler). Önceki bölümdeki paket geri yükleme yöntemlerinden herhangi birini de kullanabilirsiniz.

Tamamlandı hata iletisi:

One or more NuGet packages need to be restored but couldn't be because consent has
not been granted. To give consent, open the Visual Studio Options dialog, click on
the NuGet Package Manager node and check 'Allow NuGet to download missing packages
during build.' You can also give consent by setting the environment variable
'EnableNuGetPackageRestore' to 'true'. Missing packages: {name}

Bu hata, NuGet yapılandırmanızda paket geri yüklemenin devre dışı bırakıldığını gösterir.

Visual Studio kullanıcıları için hızlı çözüm altında daha önce açıklandığı gibi Visual Studio'da ilgili ayarları değiştirebilirsiniz.

Bu ayarları doğrudan ilgili nuget.config dosyada da düzenleyebilirsiniz (genellikle %AppData%\NuGet\NuGet.Config Windows ve ~/.nuget/NuGet/NuGet.Config Mac/Linux'ta). altındaki packageRestore ve automatic tuşlarının enabled True olarak ayarlandığından emin olun:

<!-- Package restore is enabled -->
<configuration>
    <packageRestore>
        <add key="enabled" value="True" />
        <add key="automatic" value="True" />
    </packageRestore>
</configuration>

Önemli

Ayarları doğrudan içinde nuget.configdüzenlersenizpackageRestore, seçenekler iletişim kutusunun geçerli değerleri göstermesi için Visual Studio yeniden başlatın.

Diğer olası koşullar

  • Eksik dosyalar nedeniyle derleme hatalarıyla karşılaşabilirsiniz ve bunları indirmek için NuGet geri yükleme özelliğini kullanmanız gerekir. Ancak, bir geri yükleme çalıştırıldığında "Tüm paketler zaten yüklü ve geri yüklenecek bir şey yok" ifadesi yer alabilir. Bu durumda, klasörü (kullanırkenpackages.config) veya obj/project.assets.json dosyayı (PackageReference kullanırken) silin packages ve geri yüklemeyi yeniden çalıştırın. Hata yine de devam ederse, genel paketleri ve önbellek klasörlerini genel paketleri ve önbellek klasörlerini yönetme konusunda açıklandığı gibi temizlemek için komut satırından veya dotnet nuget locals all --clear kullanınnuget locals all -clear.

  • Kaynak denetiminden bir proje alırken, proje klasörleriniz salt okunur olarak ayarlanabilir. Klasör izinlerini değiştirin ve paketleri geri yüklemeyi yeniden deneyin.

  • NuGet eski bir sürümünü kullanıyor olabilirsiniz. Önerilen en son sürümler için nuget.org/downloads denetleyin. Visual Studio 2015 için 3.6.0'ı öneririz.

Başka sorunlarla karşılaşırsanız, sizden daha fazla ayrıntı alabilmemiz için GitHub bir sorun oluşturun.