NuGet paketi yüklendiğinde ne olur?

Basitçe söylemek gerekirse, farklı NuGet araçları genellikle proje dosyasındaki veya packages.configiçindeki bir pakete başvuru oluşturur ve ardından paketi etkili bir şekilde yükleyen bir paket geri yükleme işlemi gerçekleştirir. Özel durum, paketi yalnızca bir packages klasöre genişleten ve diğer dosyaları değiştirmeyen şeklindedirnuget install.

Genel işlem aşağıdaki gibidir:

  1. (Dışındaki nuget.exetüm araçlar) Paket tanımlayıcısını ve sürümünü proje dosyasına veya packages.configkaydedin.

    Yükleme aracı Visual Studio veya dotnet CLI ise, araç önce paketi yüklemeyi dener. Uyumsuzsa, paket veya proje dosyasına packages.configeklenmez.

  2. Paketi alın:

    • Paketin (tam identifer ve sürüm numarasına göre) Genel paketleri ve önbellek klasörlerini yönetme bölümünde açıklandığı gibi genel paketler klasörüne zaten yüklenip yüklenmediğini denetleyin.

    • Paket genel paketler klasöründe değilse, yapılandırma dosyalarında listelenen kaynaklardan almayı deneyin. Paket Kaynağı Eşleme yapılandırmaları bu noktada uygulanır. Çevrimiçi kaynaklar için, komutlarla belirtilmediği veya --no-http-cache ile nuget.exedotnet restorebelirtilmediği sürece -NoHttpCache paketi HTTP önbelleğinden almayı deneyin. (Visual Studio ve dotnet add package her zaman önbelleği kullanın.) Önbellekten bir paket kullanılıyorsa çıktıda "CACHE" görünür. Önbelleğin son kullanma süresi 30 dakikadır.

    • Paket kayan sürüm kullanılarak veya en düşük sürüm olmadan belirtildiyse, NuGet en iyi eşleşmeyi bulmak için tüm kaynaklara başvuracaktır . Örnek: 1.*, (, 2.0.0].

    • Paket HTTP önbelleğinde değilse, yapılandırmada listelenen kaynaklardan indirmeyi deneyin. Bir paket indirilirse çıkışta "GET" ve "Ok" görünür. NuGet, http trafiğini normal ayrıntı düzeyine göre günlüğe kaydeder.

    • Paket herhangi bir kaynaktan başarıyla alınamazsa yükleme bu noktada NU1103 gibi bir hatayla başarısız olur. Komutlardan gelen hataların nuget.exe yalnızca denetlenen son kaynağı gösterdiğini, ancak paketin herhangi bir kaynaktan kullanılamadığını gösterdiğine dikkat edin.

    Paketi alırken, NuGet yapılandırmasındaki kaynakların sırası geçerli olabilir:

    • NuGet, HTTP kaynaklarını denetlemeden önce yerel klasörü ve ağ paylaşımlarını denetler.
  3. Paketin bir kopyasını ve diğer bilgileri genel paketleri ve önbellek klasörlerini yönetme konusunda açıklandığı gibi http-cache klasörüne kaydedin.

  4. İndirilirse, paketi kullanıcı başına genel paketler klasörüne yükleyin. NuGet, her paket tanımlayıcısı için bir alt klasör oluşturur ve ardından paketin yüklü her sürümü için alt klasörler oluşturur.

  5. NuGet, paket bağımlılıklarını gerektiği gibi yükler. Bu işlem, Bağımlılık Çözümlemesi'nde açıklandığı gibi işlemdeki paket sürümlerini güncelleştirebilir.

  6. Diğer proje dosyalarını ve klasörlerini güncelleştirin:

    • PackageReference kullanan projeler için içinde depolanan obj/project.assets.jsonpaket bağımlılığı grafiğini güncelleştirin. Paket içeriği hiçbir proje klasörüne kopyalanmaz.
    • Paket kaynak ve yapılandırma dosyası dönüştürmelerini kullanıyorsa ve/veya web.config güncelleştirmeapp.config.
  7. (yalnızca Visual Studio) Varsa paketin benioku dosyasını Visual Studio penceresinde görüntüleyin.

NuGet paketleriyle üretken kodlamanın keyfini çıkarın!