Genel paketleri, önbelleği ve geçici klasörleri yönetme

Bir paketi yüklediğinizde, güncelleştirdiğinizde veya geri yüklediğinizde NuGet, proje yapınızın dışındaki birkaç klasördeki paketleri ve paket bilgilerini yönetir:

Veri Akışı Adı Açıklama ve Konum (kullanıcı başına)
genel paketler Genel paketler klasörü, NuGet'in indirilen tüm paketleri yüklediği yerdir. Her paket, paket tanımlayıcısı ve sürüm numarasıyla eşleşen bir alt klasöre tamamen genişletilir. PackageReference biçimini kullanan projeler her zaman doğrudan bu klasörden paketleri kullanır. packages.config kullanılırken paketler global-packages klasörüne yüklenir ve ardından projenin packages klasörüne kopyalanır.
  • Windows: %userprofile%\.nuget\packages
  • Mac/Linux: ~/.nuget/packages
  • NUGET_PACKAGES ortam değişkenini globalPackagesFolder , veya repositoryPathyapılandırma ayarlarını (sırasıyla PackageReference ve packages.configkullanırken) veya RestorePackagesPath MSBuild özelliğini (yalnızca MSBuild) kullanarak geçersiz kılın. Ortam değişkeni yapılandırma ayarından önceliklidir.
http-cache Visual Studio Paket Yöneticisi (NuGet 3.x+) ve dotnet araç, indirilen paketlerin kopyalarını bu önbellekte (dosya olarak .dat kaydedilen) depolar ve her paket kaynağı için alt klasörler halinde düzenlenir. Paketler genişletilmemiştir ve önbelleğin son kullanma süresi 30 dakikadır.
  • Windows: %localappdata%\NuGet\v3-cache
  • Mac/Linux: ~/.local/share/NuGet/v3-cache
  • NUGET_HTTP_CACHE_PATH ortam değişkenini kullanarak geçersiz kılın.
temp NuGet'in çeşitli işlemleri sırasında geçici dosyaları depoladığı bir klasör.
  • Windows: %temp%\NuGetScratch
  • Mac: /tmp/NuGetScratch
  • Linux: /tmp/NuGetScratch<username>
  • NUGET_SCRATCH ortam değişkenini kullanarak geçersiz kılın.
  • plugins-cache 4.8+ NuGet'in işlem talep isteğinden elde ettiği sonuçları depoladığı klasör.
    • Windows: %localappdata%\NuGet\plugins-cache
    • Mac/Linux: ~/.local/share/NuGet/plugins-cache
    • NUGET_PLUGINS_CACHE_PATH ortam değişkenini kullanarak geçersiz kılın.

    Not

    NuGet 3.5 ve öncesi, içinde %localappdata%\NuGet\Cachebulunan http-cache yerine packages-cache kullanır.

    NuGet, önbellek ve genel paketler klasörlerini kullanarak genellikle bilgisayarda zaten var olan paketlerin indirilmesini önleyerek yükleme, güncelleştirme ve geri yükleme işlemlerinin performansını artırır. PackageReference kullanılırken genel paketler klasörü, indirilen paketlerin yanlışlıkla kaynak denetimine eklenebileceği proje klasörleri içinde tutulmasını önler ve NuGet'in bilgisayar depolaması üzerindeki genel etkisini azaltır.

    Bir paketin alınması istendiğinde NuGet ilk olarak genel paketler klasörüne bakar. Paketin tam sürümü orada değilse, NuGet HTTP olmayan tüm paket kaynaklarını denetler. Paket hala bulunamazsa, komutlarla veya -NoHttpCache komutlarla dotnet.exenuget.exe belirtmediğiniz --no-http-cache sürece NuGet paketi http önbelleğinde arar. Paket önbellekte değilse veya önbellek kullanılmıyorsa NuGet paketi HTTP üzerinden alır.

    Daha fazla bilgi için bkz . Paket yüklendiğinde ne olur?.

    Klasör konumlarını görüntüleme

    nuget locals komutunu kullanarak konumları görüntüleyebilirsiniz:

    # Display locals for all folders: global-packages, http cache, temp and plugins cache
    nuget locals all -list
    

    Tipik çıkış (Windows; "user1" geçerli kullanıcı adıdır:

    http-cache: C:\Users\user1\AppData\Local\NuGet\v3-cache
    global-packages: C:\Users\user1\.nuget\packages\
    temp: C:\Users\user1\AppData\Local\Temp\NuGetScratch
    plugins-cache: C:\Users\user1\AppData\Local\NuGet\plugins-cache
    

    (package-cache NuGet 2.x'te kullanılır ve NuGet 3.5 ve önceki sürümlerle birlikte görünür.)

    Klasör konumlarını dotnet nuget locals komutunu kullanarak da görüntüleyebilirsiniz:

    dotnet nuget locals all --list
    

    Tipik çıkış (Mac; "user1" geçerli kullanıcı adıdır:

    info : http-cache: /home/user1/.local/share/NuGet/v3-cache
    info : global-packages: /home/user1/.nuget/packages/
    info : temp: /tmp/NuGetScratch
    info : plugins-cache: /home/user1/.local/share/NuGet/plugins-cache
    

    Tipik çıkış (Linux; "user1" geçerli kullanıcı adıdır:

    info : http-cache: /home/user1/.local/share/NuGet/v3-cache
    info : global-packages: /home/user1/.nuget/packages/
    info : temp: /tmp/NuGetScratchuser1
    info : plugins-cache: /home/user1/.local/share/NuGet/plugins-cache
    

    Tek bir klasörün konumunu görüntülemek için yerine , global-packages, tempveya plugins-cacheallkullanınhttp-cache.

    Yerel klasörleri temizleme

    Paket yükleme sorunlarıyla karşılaşıyorsanız veya uzak bir galeriden paketleri yüklediğinizden emin olmak istiyorsanız, temizleneceğini veya tüm klasörleri temizlemek için klasörü belirtme (dotnet.exe) veya locals -clearall (nuget.exe) seçeneğini kullanınlocals --clear:

    # Clear the 3.x+ cache (use either command)
    dotnet nuget locals http-cache --clear
    nuget locals http-cache -clear
    
    # Clear the 2.x cache (NuGet CLI 3.5 and earlier only)
    nuget locals packages-cache -clear
    
    # Clear the global packages folder (use either command)
    dotnet nuget locals global-packages --clear
    nuget locals global-packages -clear
    
    # Clear the temporary cache (use either command)
    dotnet nuget locals temp --clear
    nuget locals temp -clear
    
    # Clear the plugins cache (use either command)
    dotnet nuget locals plugins-cache --clear
    nuget locals plugins-cache -clear
    
    # Clear all caches (use either command)
    dotnet nuget locals all --clear
    nuget locals all -clear
    

    Visual Studio'da açık olan projeler tarafından kullanılan paketler genel paketler klasöründen temizlenmez.

    Visual Studio 2017'den başlayarak Araçlar > NuGet Paket Yöneticisi > Paket Yöneticisi Ayarlar menü komutunu kullanın, ardından Tüm NuGet Önbelleklerini Temizle'yi seçin. Önbelleği yönetme özelliği şu anda Paket Yöneticisi Konsolu üzerinden sağlanmamaktadır. Visual Studio 2015'te bunun yerine CLI komutlarını kullanın.

    NuGet option command for clearing caches

    Hataları giderme

    veya dotnet nuget localskullanılırken nuget locals aşağıdaki hatalar oluşabilir:

    • Hata: Başka bir işlem tarafından kullanıldığından veya Yerel kaynaklar temizlenemediğinden işlem dosya <paketine> erişemiyor: Bir veya daha fazla dosya silinemiyor

      Klasördeki bir veya daha fazla dosya başka bir işlem tarafından kullanılıyor; örneğin, genel paketler klasöründeki paketlere başvuran bir Visual Studio projesi açıktır. Bu işlemleri kapatın ve yeniden deneyin.

    • Hata: Yol <yoluna> erişim reddedildi veya Dizin boş değil

      Önbellekteki dosyaları silme izniniz yok. Mümkünse klasör izinlerini değiştirin ve yeniden deneyin. Aksi takdirde sistem yöneticinize başvurun.

    • Hata: Belirtilen yol, dosya adı veya her ikisi de çok uzun. Tam dosya adı 260 karakterden az ve dizin adı 248 karakterden az olmalıdır.

      Klasör adlarını kısaltın ve yeniden deneyin.