Packages.config – referenční informace

Soubor packages.config se používá v některých typech projektů k údržbě seznamu balíčků odkazovaných projektem. Díky tomu může NuGet snadno obnovit závislosti projektu, když se má projekt přenést do jiného počítače, například na buildovací server, bez všech těchto balíčků.

Pokud se používá, packages.config musí být umístěn v kořenovém adresáři projektu. Automaticky se vytvoří při spuštění první operace NuGet, ale můžete ji vytvořit také ručně před spuštěním libovolných příkazů, jako nuget restoreje .

Projekty používající PackageReference nepoužívají packages.config.

Schéma

Schéma je jednoduché: Následující standardní hlavička XML je jeden <packages> uzel, který obsahuje jeden nebo více <package> prvků, jeden pro každý odkaz. Každý <package> prvek může mít následující atributy:

Atribut Požadováno Popis
ID Ano Identifikátor balíčku, například Newtonsoft.json nebo Microsoft.AspNet.Mvc.
version Ano Přesná verze balíčku k instalaci, například 3.1.1 nebo 4.2.5.11-beta. Řetězec verze musí mít alespoň tři čísla; Čtvrtý je nepovinný, protože jde o příponu předběžné verze. Oblasti nejsou povolené.
Targetframework No Moniker cílové architektury (TFM), který se má použít při instalaci balíčku. Toto nastavení je původně nastaveno na cíl projektu při instalaci balíčku. V důsledku toho můžou různé <package> prvky mít různé TFM. Pokud například vytvoříte projekt určený pro .NET 4.5.2, balíčky nainstalované v tomto okamžiku budou používat TFM net452. Pokud jste ; později projekt znovu nasměrujte na .NET 4.6 a přidejte další balíčky, které budou používat TFM net46. Neshoda mezi cílem a targetFramework atributy projektu vygeneruje upozornění, v takovém případě můžete přeinstalovat ovlivněné balíčky.
allowedVersions No Rozsah povolených verzí pro tento balíček použitý během aktualizace balíčku (viz Omezení verzí upgradu. Nemá vliv na to, jaký balíček je nainstalován během operace instalace nebo obnovení. Syntaxi najdete v tématu Správa verzí balíčků. Uživatelské rozhraní PackageManager také zakáže všechny verze mimo povolený rozsah.
developmentDependency No Pokud samotný spotřebovaný projekt vytvoří balíček NuGet, nastavením této true závislosti zabráníte zahrnutí tohoto balíčku při vytvoření balíčku s využitím. Výchozí hodnota je false.

Příklady

Následující packages.config informace odkazují na dvě závislosti:

<?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>

Následující packages.config informace odkazují na devět balíčků, ale Microsoft.Net.Compilers nebudou zahrnuty při sestavování balíčku s využitím z důvodu atributu developmentDependency . Odkaz na Newtonsoft.Json také omezuje aktualizace pouze na verze 8.x a 9.x.

<?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>