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 restorekomutlar ç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>