packages.config başvurusu
Dosya packages.config
, proje tarafından başvuruda bulunılan paketlerin listesini korumak için bazı proje türlerinde kullanılır. Bu, proje tüm bu paketler olmadan derleme sunucusu gibi farklı bir makineye taşınacaksa NuGet'in projenin bağımlılıklarını kolayca geri yüklemesine olanak tanır.
Kullanılıyorsa, packages.config
bir proje kökünde bulunmalıdır. İlk NuGet işlemi çalıştırıldığında otomatik olarak oluşturulur, ancak gibi nuget restore
komutlar çalıştırılmadan önce el ile de oluşturulabilir.
PackageReference kullanan projeler kullanmazpackages.config
.
Şema
Şema basittir: Standart XML üst bilgisinin ardından, her başvuru için bir veya daha fazla <package>
öğe içeren tek <packages>
bir düğüm bulunur. Her <package>
öğe aşağıdaki özniteliklere sahip olabilir:
Öznitelik | Zorunlu | Açıklama |
---|---|---|
id | Yes | paketin Newtonsoft.json veya Microsoft.AspNet.Mvc gibi tanımlayıcısı. |
sürüm | Yes | Yüklenecek paketin 3.1.1 veya 4.2.5.11-beta gibi tam sürümü. Sürüm dizesinde en az üç sayı olmalıdır; dördüncü sürüm öncesi soneki olduğu gibi isteğe bağlıdır. Aralıklara izin verilmez. |
targetFramework | Hayır | Paket yüklenirken uygulanacak hedef çerçeve adı (TFM). Bu, başlangıçta bir paket yüklendiğinde projenin hedefine ayarlanır. Sonuç olarak, farklı <package> öğelerin farklı TFM'leri olabilir. Örneğin, .NET 4.5.2'yi hedefleyen bir proje oluşturursanız, bu noktada yüklenen paketler net452'nin TFM'sini kullanır. Eğer siz; daha sonra projeyi .NET 4.6'ya yeniden hedefleyin ve daha fazla paket ekleyin; bunlar net46 TFM'sini kullanır. Projenin hedefi ve targetFramework öznitelikleri arasındaki uyuşmazlık uyarılar oluşturur ve bu durumda etkilenen paketleri yeniden yükleyebilirsiniz. |
allowedVersions | Hayır | Bu paket için paket güncelleştirmesi sırasında uygulanan bir dizi izin verilen sürüm (bkz . Yükseltme sürümlerindeki kısıtlamalar. Yükleme veya geri yükleme işlemi sırasında hangi paketin yüklendiğini etkilemez. Söz dizimi için bkz . Paket sürümü oluşturma . PackageManager kullanıcı arabirimi, izin verilen aralığın dışındaki tüm sürümleri de devre dışı bırakır. |
developmentDependency | Hayır | Tüketen projenin kendisi bir NuGet paketi oluşturursa, bunu true bir bağımlılık için olarak ayarlamak, tüketen paket oluşturulduğunda bu paketin eklenmesini engeller. Varsayılan değer: false . |
Örnekler
Aşağıdakiler packages.config
iki bağımlılığı ifade eder:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="jQuery" version="3.1.1" targetFramework="net46" />
<package id="NLog" version="4.3.10" targetFramework="net46" />
</packages>
Aşağıdaki packages.config
dokuz pakete başvurur, ancak Microsoft.Net.Compilers
özniteliği nedeniyle developmentDependency
tüketen paketi oluştururken dahil edilmeyecektir. Newtonsoft.Json başvurusu da güncelleştirmeleri yalnızca 8.x ve 9.x sürümleriyle kısıtlar.
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net46" />
<package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net46" developmentDependency="true" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Microsoft.Web.Xdt" version="2.1.1" targetFramework="net46" />
<package id="Newtonsoft.Json" version="8.0.3" allowedVersions="[8,10)" targetFramework="net46" />
<package id="NuGet.Core" version="2.11.1" targetFramework="net46" />
<package id="NuGet.Server" version="2.11.2" targetFramework="net46" />
<package id="RouteMagic" version="1.3" targetFramework="net46" />
<package id="WebActivatorEx" version="2.1.0" targetFramework="net46" />
</packages>