NuGet paketi yüklendiğinde ne olur?
Basitçe söylemek gerekirse, farklı NuGet araçları genellikle proje dosyasındaki veya packages.config
iç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:
(Dışındaki
nuget.exe
tüm araçlar) Paket tanımlayıcısını ve sürümünü proje dosyasına veyapackages.config
kaydedin.Yükleme aracı Visual Studio veya dotnet CLI ise, araç önce paketi yüklemeyi dener. Uyumsuzsa, paket veya proje dosyasına
packages.config
eklenmez.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
ilenuget.exe
dotnet restore
belirtilmediği sürece-NoHttpCache
paketi HTTP önbelleğinden almayı deneyin. (Visual Studio vedotnet 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.
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.
İ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.
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.
Diğer proje dosyalarını ve klasörlerini güncelleştirin:
- PackageReference kullanan projeler için içinde depolanan
obj/project.assets.json
paket 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
.
- PackageReference kullanan projeler için içinde depolanan
(yalnızca Visual Studio) Varsa paketin benioku dosyasını Visual Studio penceresinde görüntüleyin.
NuGet paketleriyle üretken kodlamanın keyfini çıkarın!