referenční dokumentace příponou .nuspec.nuspec reference

A .nuspec je soubor manifestu XML, který obsahuje metadata balíčků.A .nuspec file is an XML manifest that contains package metadata. Tento manifest se používá k vytvoření balíčku a zadejte informace k příjemce.This manifest is used both to build the package and to provide information to consumers. Manifest je vždy součástí balíčku.The manifest is always included in a package.

V tomto tématu:In this topic:

Obecné formuláře a schématuGeneral form and schema

Aktuální nuspec.xsd soubor schématu najdete v úložiště NuGet GitHub.The current nuspec.xsd schema file can be found in the NuGet GitHub repository.

V tomto schématu .nuspec soubor má následující Obecné formuláře:Within this schema, a .nuspec file has the following general form:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <!-- Required elements-->
        <id></id>
        <version></version>
        <description></description>
        <authors></authors>

        <!-- Optional elements -->
        <!-- ... -->
    </metadata>
    <!-- Optional 'files' node -->
</package>

Pro zřetelné vizuální reprezentace schématu, otevřete soubor schématu v sadě Visual Studio v režimu návrhu a klikněte na Explorer schématu XML odkaz.For a clear visual representation of the schema, open the schema file in Visual Studio in Design mode and click on the XML Schema Explorer link. Můžete také otevřít soubor jako kód, klikněte pravým tlačítkem myši v editoru a vyberte zobrazit Explorer schématu XML.Alternately, open the file as code, right-click in the editor, and select Show XML Schema Explorer. V obou případech, které získáte zobrazení stejný, jako je pod (většinou rozšířit):Either way you get a view like the one below (when mostly expanded):

Schéma Průzkumníka Visual Studio s nuspec.xsd otevřít

Atributy metadatMetadata attributes

<metadata> Element podporuje atributy popsané v následující tabulce.The <metadata> element supports the attributes described in the following table.

AtributAttribute PožadovánoRequired PopisDescription
MinClientVersionminClientVersion NeNo Určuje minimální verzi klienta NuGet, který můžete nainstalovat tento balíček vynucováno nuget.exe a Správce balíčků Visual Studio.Specifies the minimum version of the NuGet client that can install this package, enforced by nuget.exe and the Visual Studio Package Manager. Používá se vždy, když balíček závisí na specifické funkce .nuspec souborů, které byly přidány v konkrétní verzi klienta NuGet.This is used whenever the package depends on specific features of the .nuspec file that were added in a particular version of the NuGet client. Například balíčku pomocí developmentDependency atribut by měl určovat "2.8" pro minClientVersion.For example, a package using the developmentDependency attribute should specify "2.8" for minClientVersion. Podobně balíčku pomocí contentFiles (viz další část) musí nastavit element minClientVersion k "3.3".Similarly, a package using the contentFiles element (see the next section) should set minClientVersion to "3.3". Poznámka: protože klienty NuGet před 2.5 nerozpoznávají tento příznak, budou vždy odmítnout k instalaci balíčku bez ohledu na to, co minClientVersion obsahuje.Note also that because NuGet clients prior to 2.5 do not recognize this flag, they always refuse to install the package no matter what minClientVersion contains.

Požadovaná metadata elementyRequired metadata elements

I když tyto prvky jsou minimální požadavky pro balíček, měli byste zvážit přidání volitelná metadata elementy celkové lepší vývojáři mají spolu s balíčkem.Although the following elements are the minimum requirements for a package, you should consider adding the optional metadata elements to improve the overall experience developers have with your package.

Tyto prvky musí být v rámci <metadata> elementu.These elements must appear within a <metadata> element.

PrvekElement PopisDescription
idid Identifikátor balíčku velká a malá písmena, která musí být jedinečný v rámci nuget.org nebo jiná balíčku se nachází v galerii.The case-insensitive package identifier, which must be unique across nuget.org or whatever gallery the package resides in. ID nesmí obsahovat mezery nebo znaky, které nejsou platné pro adresu URL a obecně podle oboru názvů pravidla technologie .NET.IDs may not contain spaces or characters that are not valid for a URL, and generally follow .NET namespace rules. V tématu výběr balíčku jedinečný identifikátor pokyny.See Choosing a unique package identifier for guidance.
Verzeversion Verze balíčku, následující major.minor.patch vzor.The version of the package, following the major.minor.patch pattern. Čísla verzí může zahrnovat příponu předběžné verze, jak je popsáno v Správa verzí balíčku.Version numbers may include a pre-release suffix as described in Package versioning.
Popisdescription Dlouhý popis balíčku pro zobrazení uživatelského rozhraní.A long description of the package for UI display.
Autořiauthors Seznam balíčků autoři, odpovídající profil názvy v nuget.org oddělených čárkami. Tyto jsou zobrazeny v galerii NuGet v nuget.org a jsou používané pro křížovou balíčky autory stejné.A comma-separated list of packages authors, matching the profile names on nuget.org. These are displayed in the NuGet Gallery on nuget.org and are used to cross-reference packages by the same authors.

Volitelná metadata elementyOptional metadata elements

Může se zobrazit tyto prvky v rámci <metadata> elementu.These elements may appear within a <metadata> element.

Jednotlivé prvkySingle elements

PrvekElement PopisDescription
Názevtitle Lidské popisný název balíčku, obvykle používaných v zobrazení uživatelského rozhraní na nuget.org a Správce balíčků v sadě Visual Studio.A human-friendly title of the package, typically used in UI displays as on nuget.org and the Package Manager in Visual Studio. Pokud není zadaný, použije se ID balíčku.If not specified, the package ID is used.
Vlastníciowners Seznam creators balíček pomocí profilu názvy v nuget.org oddělených čárkami. Tento problém je často seznamu stejné jako v authorsa při odesílání balíčku pro nuget.org ignorováno. V tématu Správa vlastníků balíčku na nuget.org.A comma-separated list of the package creators using profile names on nuget.org. This is often the same list as in authors, and is ignored when uploading the package to nuget.org. See Managing package owners on nuget.org.
projectUrlprojectUrl Zobrazí adresu URL pro domovskou stránku balíčku, často se zobrazí v uživatelském rozhraní a také nuget.org.A URL for the package's home page, often shown in UI displays as well as nuget.org.
licenseUrllicenseUrl Adresa URL pro balíčku licenci, často se zobrazí v zobrazení uživatelského rozhraní, jakož i nuget.org.A URL for the package's license, often shown in UI displays as well as nuget.org.
iconUrliconUrl Adresu URL pro bitovou kopii 64 x 64 s průhlednost pozadí chcete použít jako ikonu balíčku v zobrazení uživatelského rozhraní.A URL for a 64x64 image with transparency background to use as the icon for the package in UI display. Ujistěte se, obsahuje tento element přímá adresa URL obrázku nikoli adresa URL webové stránky, který obsahuje bitovou kopii.Be sure this element contains the direct image URL and not the URL of a web page containing the image. Například pokud chcete použít bitovou kopii z Githubu, použijte soubor raw, jako adresa URL https://github.com/<username>/<repository>/raw/<branch>/<logo.png>.For example, to use an image from GitHub, use the raw file URL like https://github.com/<username>/<repository>/raw/<branch>/<logo.png>.
requireLicenseAcceptancerequireLicenseAcceptance Logická hodnota určující, jestli klient musí zobrazovat výzvu k příjemce tak, aby přijímal licenční balíček před instalací balíčku.A Boolean value specifying whether the client must prompt the consumer to accept the package license before installing the package.
DevelopmentDependencydevelopmentDependency (2.8 +) A logickou hodnotu určující, zda tento balíček je označit jako vývoj jen závislost, která zabraňuje balíček zahrnutí v závislosti na dalších balíčků.(2.8+) A Boolean value specifying whether the package is be marked as a development-only-dependency, which prevents the package from being included as a dependency in other packages.
Souhrnsummary Stručný popis balíčku pro zobrazení uživatelského rozhraní.A short description of the package for UI display. Pokud tento parametr vynechán, zkrácený verzi description se používá.If omitted, a truncated version of description is used.
ReleaseNotesreleaseNotes (1.5 +) Popis změn provedených v této verzi balíčku, často se používá v uživatelském rozhraní, jako aktualizace karta nástroje Visual Studio Správce balíčků místo Popis balíčku.(1.5+) A description of the changes made in this release of the package, often used in UI like the Updates tab of the Visual Studio Package Manager in place of the package description.
Copyrightcopyright (1.5 +) Copyright podrobnosti balíčku.(1.5+) Copyright details for the package.
Jazyklanguage ID národního prostředí pro daný balíček.The locale ID for the package. V tématu vytvoření lokalizovaných balíčků.See Creating localized packages.
Značkytags Mezerami oddělený seznam značek a klíčová slova, která popisují možnosti rozpoznání balíčku a podpory balíčků prostřednictvím vyhledávání a filtrování.A space-delimited list of tags and keywords that describe the package and aid discoverability of packages through search and filtering.
možnost změnyserviceable (3.3 +) Pouze pro interní NuGet použít.(3.3+) For internal NuGet use only.

Elementy v kolekciCollection elements

PrvekElement PopisDescription
packageTypespackageTypes (3.5 +) Kolekce nula nebo více <packageType> elementy určení typu balíčku Pokud než tradiční závislost balíčku.(3.5+) A collection of zero or more <packageType> elements specifying the type of the package if other than a traditional dependency package. Každý packageType má atributy název a verze.Each packageType has attributes of name and version. V tématu nastavení typ balíčku.See Setting a package type.
Závislostidependencies Kolekce nula nebo více <dependency> elementy určení závislostí pro balíček.A collection of zero or more <dependency> elements specifying the dependencies for the package. Každá závislost má atributy id, verze, zahrnují (3.x+), a vyloučit (3.x+).Each dependency has attributes of id, version, include (3.x+), and exclude (3.x+). V tématu závislosti níže.See Dependencies below.
frameworkAssembliesframeworkAssemblies (1.2 +) Kolekce nula nebo více <frameworkAssembly> elementy identifikace odkazy na sestavení rozhraní .NET Framework, které tento balíček vyžaduje, což zajistí, že odkazy jsou přidány do projekty využívající balíčku.(1.2+) A collection of zero or more <frameworkAssembly> elements identifying .NET Framework assembly references that this package requires, which ensures that references are added to projects consuming the package. Má každý frameworkAssembly assemblyName a targetFramework atributy.Each frameworkAssembly has assemblyName and targetFramework attributes. V tématu zadání sestavení rozhraní odkazuje GAC níže.See Specifying framework assembly references GAC below.
Odkazyreferences (1.5 +) Kolekce nula nebo více <reference> elementy pojmenování sestavení v balíčku lib složky, které jsou přidány jako odkazy na projekt.(1.5+) A collection of zero or more <reference> elements naming assemblies in the package's lib folder that are added as project references. Má každý odkaz souboru atribut.Each reference has a file attribute. <references> může také obsahovat <group> element s targetFramework atribut, který pak obsahuje <reference> elementy.<references> can also contain a <group> element with a targetFramework attribute, that then contains <reference> elements. Pokud tento parametr vynechán, všechny odkazy v lib jsou zahrnuty.If omitted, all references in lib are included. V tématu zadání odkazy na sestavení explicitní níže.See Specifying explicit assembly references below.
contentFilescontentFiles (3.3 +) Kolekce <files> prvky, které identifikují soubory obsahu pro zahrnutí do projektu náročná.(3.3+) A collection of <files> elements that identify content files to include in the consuming project. Tyto soubory jsou určeny sadu atributů, které popisují, jak mají být použity v rámci systému projektu.These files are specified with a set of attributes that describe how they should be used within the project system. V tématu určující soubory, které chcete zahrnout do balíčku níže.See Specifying files to include in the package below.

Files – elementFiles element

<package> Uzel může obsahovat <files> uzlu na stejnou úroveň jako <metadata>a nebo <contentFiles> dítěte mladšího <metadata>, určete, které soubory sestavení a obsah balíčku.The <package> node may contain a <files> node as a sibling to <metadata>, and a or <contentFiles> child under <metadata>, to specify which assembly and content files to include in the package. V tématu včetně souborů sestavení a včetně soubory obsahu dál v tomto tématu podrobnosti.See Including assembly files and Including content files later in this topic for details.

Nahrazení tokenůReplacement tokens

Při vytváření balíčku, nuget pack příkaz nahrazuje oddělený $ tokeny v .nuspec souboru <metadata> uzlu s hodnotami, které pocházejí z buď soubor projektu nebo pack příkazu -propertiespřepínače.When creating a package, the nuget pack command replaces $-delimited tokens in the .nuspec file's <metadata> node with values that come from either a project file or the pack command's -properties switch.

Na příkazovém řádku, zadejte hodnoty tokenu s nuget pack -properties <name>=<value>;<name>=<value>.On the command line, you specify token values with nuget pack -properties <name>=<value>;<name>=<value>. Například můžete použít token jako $owners$ a $desc$ v .nuspec a zadejte hodnoty v balení čas následujícím způsobem:For example, you can use a token such as $owners$ and $desc$ in the .nuspec and provide the values at packing time as follows:

nuget pack MyProject.csproj -properties
    owners=janedoe,harikm,kimo,xiaop;desc="Awesome app logger utility"

Chcete-li použít hodnoty z projektu, zadejte tokeny popsané v následující tabulce (AssemblyInfo odkazuje na soubor v Properties například AssemblyInfo.cs nebo AssemblyInfo.vb).To use values from a project, specify the tokens described in the table below (AssemblyInfo refers to the file in Properties such as AssemblyInfo.cs or AssemblyInfo.vb).

Pokud chcete použít tyto tokeny, spusťte nuget pack do souboru projektu spíše než jenom .nuspec.To use these tokens, run nuget pack with the project file rather than just the .nuspec. Například když pomocí následujícího příkazu $id$ a $version$ tokeny v .nuspec soubor se nahradí projektu AssemblyName a AssemblyVersion hodnoty:For example, when using the following command, the $id$ and $version$ tokens in a .nuspec file are replaced with the project's AssemblyName and AssemblyVersion values:

nuget pack MyProject.csproj

Obvykle, když máte projekt, můžete vytvořit .nuspec původně pomocí nuget spec MyProject.csproj který automaticky zahrnuje některé tyto standardní tokeny.Typically, when you have a project, you create the .nuspec initially using nuget spec MyProject.csproj which automatically includes some of these standard tokens. Ale pokud projektu chybí hodnoty pro požadované .nuspec elementy, pak nuget pack selže.However, if a project lacks values for required .nuspec elements, then nuget pack fails. Kromě toho pokud změníte projektu hodnoty, je nutné znovu vytvořit před vytvořením balíčku. To lze provést pohodlně pomocí příkazu pack build přepínače.Furthermore, if you change project values, be sure to rebuild before creating the package; this can be done conveniently with the pack command's build switch.

S výjimkou produktů $configuration$, jsou všechny přiřazen stejný token na příkazovém řádku použít hodnoty v projektu.With the exception of $configuration$, values in the project are used in preference to any assigned to the same token on the command line.

TokenToken Hodnota zdrojeValue source HodnotaValue
$id$$id$ soubor projektuProject file AssemblyName (title) ze souboru projektuAssemblyName (title) from the project file
$version$$version$ AssemblyInfoAssemblyInfo AssemblyInformationalVersion, pokud existuje, jinak hodnota AssemblyVersionAssemblyInformationalVersion if present, otherwise AssemblyVersion
$author$$author$ AssemblyInfoAssemblyInfo AssemblyCompanyAssemblyCompany
$title$$title$ AssemblyInfoAssemblyInfo AssemblyTitleAssemblyTitle
$description$$description$ AssemblyInfoAssemblyInfo AssemblyDescriptionAssemblyDescription
$copyright$$copyright$ AssemblyInfoAssemblyInfo AssemblyCopyrightAssemblyCopyright
$configuration$$configuration$ Sestavení knihovny DLLAssembly DLL Konfigurace použitá k vytvoření sestavení, jako výchozí bude použit k ladění.Configuration used to build the assembly, defaulting to Debug. Upozorňujeme, že pokud chcete vytvořit balíček pomocí konfigurace verze, můžete vždy použít -properties Configuration=Release na příkazovém řádku.Note that to create a package using a Release configuration, you always use -properties Configuration=Release on the command line.

Tokeny lze také vyřešit cesty, jakmile zahrnete soubory sestavení a obsahu souborů.Tokens can also be used to resolve paths when you include assembly files and content files. Tokeny mají stejné názvy jako vlastnosti nástroje MSBuild, což umožňuje vyberte soubory, které mají být zahrnuty v závislosti na aktuální konfiguraci sestavení.The tokens have the same names as the MSBuild properties, making it possible to select files to be included depending on the current build configuration. Například, pokud používáte následující klíčová slova v .nuspec souboru:For example, if you use the following tokens in the .nuspec file:

<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net40" />
</files>

A vytváření sestavení jejichž AssemblyName je LoggingLibrary s Release konfigurace v nástroji MSBuild, výsledná řádků v .nuspec souboru v balíčku je následující:And you build an assembly whose AssemblyName is LoggingLibrary with the Release configuration in MSBuild, the resulting lines in the .nuspec file in the package is as follows:

<files>
    <file src="bin\Release\LoggingLibrary.pdb" target="lib\net40" />
</files>

ZávislostiDependencies

<dependencies> v rámci <metadata> obsahuje libovolný počet <dependency> elementy, které identifikují další balíčky, na kterých závisí balíček nejvyšší úrovně.The <dependencies> element within <metadata> contains any number of <dependency> elements that identify other packages upon which the top-level package depends. Atributy pro každou <dependency> jsou následující:The attributes for each <dependency> are as follows:

AtributAttribute PopisDescription
id (Povinné) ID balíčku závislosti, jako je například "EntityFramework" a "NUnit", což je název nuget.org balíčku se zobrazí na stránce balíček.(Required) The package ID of the dependency, such as "EntityFramework" and "NUnit", which is the name of the package nuget.org shows on a package page.
version (Povinné) Rozsah verze přijatelné jako závislost.(Required) The range of versions acceptable as a dependency. V tématu Správa verzí balíčku pro přesná syntaxe.See Package versioning for exact syntax.
includeinclude Čárkami oddělený seznam zahrnutí a vyloučení značky (viz níže), která určuje závislosti, které chcete zahrnout do konečné balíčku.A comma-delimited list of include/exclude tags (see below) indicating of the dependency to include in the final package. Výchozí hodnota je none.The default value is none.
excludeexclude Čárkami oddělený seznam zahrnutí a vyloučení značky (viz níže), která určuje závislosti k vyloučení z poslední balíček.A comma-delimited list of include/exclude tags (see below) indicating of the dependency to exclude in the final package. Výchozí hodnota je all.The default value is all. Značky s exclude mají přednost před uvedenými s include.Tags specified with exclude take precedence over those specified with include. Například include="runtime, compile" exclude="compile" je stejný jako include="runtime".For example, include="runtime, compile" exclude="compile" is the same as include="runtime".
Zahrnutí a vyloučení značkyInclude/Exclude tag Ovlivněné složky cíleAffected folders of the target
contentFilescontentFiles ObsahContent
modul runtimeruntime Modul runtime, prostředky a FrameworkAssembliesRuntime, Resources, and FrameworkAssemblies
Kompilacecompile Liblib
sestaveníbuild sestavení (MSBuild props a cíle)build (MSBuild props and targets)
nativnínative nativnínative
žádnánone Žádné složkyNo folders
všechnyall Všechny složkyAll folders

Například následující řádky označovat závislosti na PackageA verze 1.1.0 nebo vyšší, a PackageB verze 1.x.For example, the following lines indicate dependencies on PackageA version 1.1.0 or higher, and PackageB version 1.x.

<dependencies>
    <dependency id="PackageA" version="1.1.0" />
    <dependency id="PackageB" version="[1,2)" />
</dependencies>

Následující řádky znamenat závislostí na stejné balíčky, ale zadat zahrnout contentFiles a build složky PackageA a všechno ale native a compile složky PackageB"The following lines indicate dependencies on the same packages, but specify to include the contentFiles and build folders of PackageA and everything but the native and compile folders of PackageB"

<dependencies>
    <dependency id="PackageA" version="1.1.0" include="contentFiles, build" />
    <dependency id="PackageB" version="[1,2)" exclude="native, compile" />
</dependencies>

Poznámka: Při vytváření .nuspec z projektu pomocí nuget spec, závislosti, které existují v tomto projektu jsou automaticky součástí výsledná .nuspec souboru.Note: When creating a .nuspec from a project using nuget spec, dependencies that exist in that project are automatically included in the resulting .nuspec file.

Závislost skupinyDependency groups

Verze 2.0 +Version 2.0+

Jako alternativu k jediný plochý seznam závislosti lze podle profil framework cílový projekt pomocí <group> elementů v rámci <dependencies>.As an alternative to a single flat list, dependencies can be specified according to the framework profile of the target project using <group> elements within <dependencies>.

Každá skupina obsahuje atribut s názvem targetFramework a obsahuje nula nebo více <dependency> elementy.Each group has an attribute named targetFramework and contains zero or more <dependency> elements. Tyto závislosti jsou nainstalovány společně při cílovém Frameworku, který je kompatibilní s profilem framework projektu.Those dependencies are installed together when the target framework is compatible with the project's framework profile.

<group> Element bez targetFramework atribut se používá jako výchozí nebo záložní seznam závislosti.The <group> element without a targetFramework attribute is used as the default or fallback list of dependencies. V tématu cílové rozhraní pro identifikátory přesný framework.See Target frameworks for the exact framework identifiers.

Důležité

Formát skupiny nelze smíšeného s jako plochý seznam.The group format cannot be intermixed with a flat list.

Následující příklad ukazuje různých variant <group> element:The following example shows different variations of the <group> element:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

Odkazy na explicitní sestaveníExplicit assembly references

<references> Element explicitně určuje ta sestavení, které cílový projekt by měl odkazovat při použití balíčku.The <references> element explicitly specifies the assemblies that the target project should reference when using the package. Když se nachází tento element, NuGet přidáte odkazy na sestavení pouze uvedené; nepřidá odkazy pro všechny ostatní sestavení v balíčku lib složky.When this element is present, NuGet add references to only the listed assemblies; it does not add references for any other assemblies in the package's lib folder.

Například následující <references> element dá pokyn NuGet, čímž přidáte odkazy na pouze xunit.dll a xunit.extensions.dll i v případě, že existují další sestavení v balíčku:For example, the following <references> element instructs NuGet to add references to only xunit.dll and xunit.extensions.dll even if there are additional assemblies in the package:

<references>
    <reference file="xunit.dll" />
    <reference file="xunit.extensions.dll" />
</references>

Explicitní odkazy jsou obvykle používány pro návrh jen sestavení.Explicit references are typically used for design-time only assemblies. Při použití kontrakty kódu, například sestavení smlouvy musí být vedle sestavení modulu runtime, která budou posílení, aby Visual Studio můžete najít, ale sestavení kontrakt nemusí být odkazuje projektu nebo zkopírovat do projektu bin složky.When using Code Contracts, for example, contract assemblies need to be next to the runtime assemblies that they augment so that Visual Studio can find them, but the contract assemblies need not be referenced by the project or copied into the project's bin folder.

Podobně explicitní odkazy lze systémů testů jednotek, jako je například XUnit, který se musí jeho nástroje pro sestavení vedle sestavení za běhu, ale nemá potřebovat, je zahrnuta jako odkazy na projekt.Similarly, explicit references can be used for unit test frameworks, such as XUnit, which needs its tools assemblies located next to the runtime assemblies, but does not need them included as project references.

Odkazové skupinyReference groups

Jako alternativu k jediný plochý seznam odkazů na lze podle profil framework cílový projekt pomocí <group> elementů v rámci <references>.As an alternative to a single flat list, references can be specified according to the framework profile of the target project using <group> elements within <references>.

Každá skupina obsahuje atribut s názvem targetFramework a obsahuje nula nebo více <reference> elementy.Each group has an attribute named targetFramework and contains zero or more <reference> elements. Tyto odkazy se přidají do projektu, když cílovém Frameworku, který je kompatibilní s profilem framework projektu.Those references are added to a project when the target framework is compatible with the project's framework profile.

<group> Element bez targetFramework atribut se používá jako výchozí nebo záložní seznam odkazů.The <group> element without a targetFramework attribute is used as the default or fallback list of references. V tématu cílové rozhraní pro identifikátory přesný framework.See Target frameworks for the exact framework identifiers.

Důležité

Formát skupiny nelze smíšeného s jako plochý seznam.The group format cannot be intermixed with a flat list.

Následující příklad ukazuje různých variant <group> element:The following example shows different variations of the <group> element:

<references>
    <group>
        <reference file="a.dll" />
    </group>

    <group targetFramework="net45">
        <reference file="b45.dll" />
    </group>

    <group targetFramework="netcore45">
        <reference file="bcore45.dll" />
    </group>
</references>

Odkazy na sestavení FrameworkFramework assembly references

Sestavení architektury jsou ty, které jsou součástí rozhraní .NET framework a by už měla být v globální mezipaměti sestavení (GAC) pro všechny daný počítač.Framework assemblies are those that are part of the .NET framework and should already be in the global assembly cache (GAC) for any given machine. Určením těchto sestavení v rámci <frameworkAssemblies> elementu balíček můžete zajistit, že požadované odkazy jsou přidány do projektu, v případě, že projekt již nemá tyto odkazy.By identifying those assemblies within the <frameworkAssemblies> element, a package can ensure that required references are added to a project in the event that the project doesn't have such references already. Takové sestavení samozřejmě nejsou zahrnuty v balíčku přímo.Such assemblies, of course, are not included in a package directly.

<frameworkAssemblies> Element obsahuje nula nebo více <frameworkAssembly> prvky, z nichž každý určuje následující atributy:The <frameworkAssemblies> element contains zero or more <frameworkAssembly> elements, each of which specifies the following attributes:

AtributAttribute PopisDescription
assemblyNameassemblyName (Povinné) Plně kvalifikovaný název.(Required) The fully qualified assembly name.
targetFrameworktargetFramework (Volitelné) Určuje cílový framework, pro kterou platí tento odkaz.(Optional) Specifies the target framework to which this reference applies. Pokud tento parametr vynechán, označuje, že odkaz na použije pro všechna rozhraní.If omitted, indicates that the reference applies to all frameworks. V tématu cílové rozhraní pro identifikátory přesný framework.See Target frameworks for the exact framework identifiers.

Následující příklad ukazuje odkaz na System.Net pro všechny cílové architektury a odkaz na System.ServiceModel pro pouze rozhraní .NET Framework 4.0:The following example shows a reference to System.Net for all target frameworks, and a reference to System.ServiceModel for .NET Framework 4.0 only:

<frameworkAssemblies>
    <frameworkAssembly assemblyName="System.Net"  />

    <frameworkAssembly assemblyName="System.ServiceModel" targetFramework="net40" />
</frameworkAssemblies>

Včetně souborů sestaveníIncluding assembly files

Pokud budete postupovat podle konvence popsané v vytváření balíčku, není nutné explicitně zadat seznam souborů v .nuspec souboru.If you follow the conventions described in Creating a Package, you do not have to explicitly specify a list of files in the .nuspec file. nuget pack Příkaz automaticky převezme potřebné soubory.The nuget pack command automatically picks up the necessary files.

Důležité

Při instalaci balíčku do projektu NuGet automaticky přidá odkazy na sestavení pro knihovny DLL balíčku, s výjimkou ty, které jsou s názvem .resources.dll vzhledem k tomu, že se předpokládá, že lokalizované satelitní sestavení.When a package is installed into a project, NuGet automatically adds assembly references to the package's DLLs, excluding those that are named .resources.dll because they are assumed to be localized satellite assemblies. Z tohoto důvodu vyhýbat se používání .resources.dll pro soubory, které jinak obsahují nezbytné balíček kódu.For this reason, avoid using .resources.dll for files that otherwise contain essential package code.

Nepoužívat toto automatické chování a explicitně řídit soubory, které jsou součástí balíčku, umístit <files> jako podřízený element <package> (a na stejné úrovni jako <metadata>), identifikace každý soubor s samostatné <file> element.To bypass this automatic behavior and explicitly control which files are included in a package, place a <files> element as a child of <package> (and a sibling of <metadata>), identifying each file with a separate <file> element. Příklad:For example:

<files>
    <file src="bin\Debug\*.dll" target="lib" />
    <file src="bin\Debug\*.pdb" target="lib" />
    <file src="tools\**\*.*" exclude="**\*.log" />
</files>

U balíčku NuGet 2.x a starší a projektů pomocí packages.config, <files> element se používá i k zahrnují neměnné soubory obsahu při instalaci balíčku.With NuGet 2.x and earlier, and projects using packages.config, the <files> element is also used to include immutable content files when a package is installed. S NuGet 3.3 + a projekty PackageReference <contentFiles> element se používá místo.With NuGet 3.3+ and projects PackageReference, the <contentFiles> element is used instead. V tématu včetně soubory obsahu níže podrobnosti.See Including content files below for details.

Element atributy souboruFile element attributes

Každý <file> element určuje následující atributy:Each <file> element specifies the following attributes:

AtributAttribute PopisDescription
srcsrc Umístění souboru nebo soubory, které chcete zahrnout, podstoupí vyloučení určeného exclude atribut.The location of the file or files to include, subject to exclusions specified by the exclude attribute. Cesta je vzhledem k .nuspec souboru uvedeno absolutní cesta.The path is relative to the .nuspec file unless an absolute path is specified. Zástupný znak * je povolen a dvojité zástupných znaků ** znamená rekurzivní složky hledání.The wildcard character * is allowed, and the double wildcard ** implies a recursive folder search.
cíltarget Relativní cesta ke složce v rámci balíčku umístění zdrojových souborů, které musí začínat lib, content, build, nebo tools.The relative path to the folder within the package where the source files are placed, which must begin with lib, content, build, or tools. V tématu vytváření příponou .nuspec z pracovního adresáře založené na konvenci.See Creating a .nuspec from a convention-based working directory.
Vyloučeníexclude Seznam oddělený středníkem souborů nebo vzorů souborů, které chcete vyloučit z src umístění.A semicolon-delimited list of files or file patterns to exclude from the src location. Zástupný znak * je povolen a dvojité zástupných znaků ** znamená rekurzivní složky hledání.The wildcard character * is allowed, and the double wildcard ** implies a recursive folder search.

PříkladyExamples

Jednoho sestaveníSingle assembly

Source file:
    library.dll

.nuspec entry:
    <file src="library.dll" target="lib" />

Packaged result:
    lib\library.dll

Jediné sestavení, které jsou specifické pro cílové prostředíSingle assembly specific to a target framework

Source file:
    library.dll

.nuspec entry:
    <file src="assemblies\net40\library.dll" target="lib\net40" />

Packaged result:
    lib\net40\library.dll

Sada knihovny DLL pomocí zástupného znakuSet of DLLs using a wildcard

Source files:
    bin\release\libraryA.dll
    bin\release\libraryB.dll

.nuspec entry:
    <file src="bin\release\*.dll" target="lib" />

Packaged result:
    lib\libraryA.dll
    lib\libraryB.dll

Knihovny DLL pro různé rozhraníDLLs for different frameworks

Source files:
    lib\net40\library.dll
    lib\net20\library.dll

.nuspec entry (using ** recursive search):
    <file src="lib\**" target="lib" />

Packaged result:
    lib\net40\library.dll
    lib\net20\library.dll

Vyloučení souborůExcluding files

Source files:
    \tools\fileA.bak
    \tools\fileB.bak
    \tools\fileA.log
    \tools\build\fileB.log

.nuspec entries:
    <file src="tools\*.*" target="tools" exclude="tools\*.bak" />
    <file src="tools\**\*.*" target="tools" exclude="**\*.log" />

Package result:
    (no files)

Včetně souborů obsahuIncluding content files

Soubory obsahu jsou neměnné soubory, které je potřeba zahrnout do projektu balíček.Content files are immutable files that a package needs to include in a project. Se nedá změnit, nejsou určeny k využívání projektu upravit.Being immutable, they are not intended to be modified by the consuming project. Soubory obsahu příklad patří:Example content files include:

  • Bitové kopie, které jsou vloženy jako prostředkyImages that are embedded as resources
  • Zdrojové soubory, které jsou již kompilovatSource files that are already compiled
  • Skripty, které musí být součástí výstupu sestavení projektuScripts that need to be included with the build output of the project
  • Konfigurační soubory pro balíček, který mají být zahrnuti v projektu, ale nemusí změny specifické pro projektConfiguration files for the package that need to be included in the project but don't need any project-specific changes

Obsahu souborů jsou součástí balíčku pomocí <files> elementu, určení content složky v target atribut.Content files are included in a package using the <files> element, specifying the content folder in the target attribute. Ale tyto soubory jsou při instalaci balíčku v projektu pomocí PackageReference, který používá místo ignorovány <contentFiles> elementu.However, such files are ignored when the package is installed in a project using PackageReference, which instead uses the <contentFiles> element.

Pro maximální kompatibility s využívání projekty balíček v ideálním případě Určuje soubory obsahu v obou elementů.For maximum compatibility with consuming projects, a package ideally specifies the content files in both elements.

Pomocí elementu soubory souborů obsahuUsing the files element for content files

Pro soubory obsahu, stačí použít stejný formát jako soubory sestavení, ale zadat content jako základní složka v target atribut podle následujících příkladů.For content files, simply use the same format as for assembly files, but specify content as the base folder in the target attribute as shown in the following examples.

Základní soubory obsahuBasic content files

Source files:
    css\mobile\style1.css
    css\mobile\style2.css

.nuspec entry:
    <file src="css\mobile\*.css" target="content\css\mobile" />

Packaged result:
    content\css\mobile\style1.css
    content\css\mobile\style2.css

Soubory obsahu s adresářovou strukturuContent files with directory structure

Source files:
    css\mobile\style.css
    css\mobile\wp7\style.css
    css\browser\style.css

.nuspec entry:
    <file src="css\**\*.css" target="content\css" />

Packaged result:
    content\css\mobile\style.css
    content\css\mobile\wp7\style.css
    content\css\browser\style.css

Obsah souboru, které jsou specifické pro cílové prostředíContent file specific to a target framework

Source file:
    css\cool\style.css

.nuspec entry
    <file src="css\cool\style.css" target="Content" />

Packaged result:
    content\style.css

Zkopírován do složky s tečkou v názvu souboru obsahuContent file copied to a folder with dot in name

V takovém případě který NuGet uvidí rozšíření v target se neshoduje s příponou v src a proto považuje část názvu v target jako složku:In this case, NuGet sees that the extension in target does not match the extension in src and thus treats that part of the name in target as a folder:

Source file:
    images\picture.png

.nuspec entry:
    <file src="images\picture.png" target="Content\images\package.icons" />

Packaged result:
    content\images\package.icons\picture.png

Soubory obsahu bez příponyContent files without extensions

Chcete-li zahrnout soubory bez přípony, použijte * nebo ** zástupné znaky:To include files without an extension, use the * or ** wildcards:

Source file:
    flags\installed

.nuspec entry:
    <file src="flags\**" target="flags" />

Packaged result:
    flags\installed

Soubory obsahu s hloubkovým cestou a hloubkového cílContent files with deep path and deep target

V takovém případě protože přípony souborů zdrojové a cílové shodují, NuGet předpokládá, že cíl je název souboru a nikoliv složka:In this case, because the file extensions of the source and target match, NuGet assumes that the target is a file name and not a folder:

Source file:
    css\cool\style.css

.nuspec entry:
    <file src="css\cool\style.css" target="Content\css\cool" />
    or:
    <file src="css\cool\style.css" target="Content\css\cool\style.css" />

Packaged result:
    content\css\cool\style.css

Přejmenování souboru obsahu v balíčkuRenaming a content file in the package

Source file:
    ie\css\style.css

.nuspec entry:
    <file src="ie\css\style.css" target="Content\css\ie.css" />

Packaged result:
    content\css\ie.css

Vyloučení souborůExcluding files

Source file:
    docs\*.txt (multiple files)

.nuspec entry:
    <file src="docs\*.txt" target="content\docs" exclude="docs\admin.txt" />
    or
    <file src="*.txt" target="content\docs" exclude="admin.txt;log.txt" />

Packaged result:
    All .txt files from docs except admin.txt (first example)
    All .txt files from docs except admin.txt and log.txt (second example)

Pomocí elementu contentFiles souborů obsahuUsing the contentFiles element for content files

NuGet 4.0 + s PackageReferenceNuGet 4.0+ with PackageReference

Výchozí umístění obsahu v balíčku contentFiles složky (viz níže) a nuget pack zahrnuty všechny soubory v této složce pomocí výchozí atributy.By default, a package places content in a contentFiles folder (see below) and nuget pack included all files in that folder using default attributes. V takovém případě není nutné zahrnovat contentFiles uzlu .nuspec vůbec.In this case it's not necessary to include a contentFiles node in the .nuspec at all.

K řízení, které soubory jsou zahrnuty <contentFiles> element určuje je kolekce <files> prvky, které identifikují přesný soubory patří.To control which files are included, the <contentFiles> element specifies is a collection of <files> elements that identify the exact files include.

Tyto soubory jsou určeny sadu atributů, které popisují, jak mají být použity v rámci systému projektu:These files are specified with a set of attributes that describe how they should be used within the project system:

AtributAttribute PopisDescription
Zahrnoutinclude (Povinné) Umístění souboru nebo soubory, které chcete zahrnout, podstoupí vyloučení určeného exclude atribut.(Required) The location of the file or files to include, subject to exclusions specified by the exclude attribute. Cesta je vzhledem k .nuspec souboru uvedeno absolutní cesta.The path is relative to the .nuspec file unless an absolute path is specified. Zástupný znak * je povolen a dvojité zástupných znaků ** znamená rekurzivní složky hledání.The wildcard character * is allowed, and the double wildcard ** implies a recursive folder search.
Vyloučeníexclude Seznam oddělený středníkem souborů nebo vzorů souborů, které chcete vyloučit z src umístění.A semicolon-delimited list of files or file patterns to exclude from the src location. Zástupný znak * je povolen a dvojité zástupných znaků ** znamená rekurzivní složky hledání.The wildcard character * is allowed, and the double wildcard ** implies a recursive folder search.
buildActionbuildAction Akce sestavení přiřadit položku obsahu pro MSBuild, jako například Content, None, Embedded Resource, Compileatd. Výchozí hodnota je Compile.The build action to assign to the content item for MSBuild, such as Content, None, Embedded Resource, Compile, etc. The default is Compile.
copyToOutputcopyToOutput Logická hodnota, která určuje, zda zkopírovat obsahu položky do sestavení (nebo publikování) výstupní složky.A Boolean indicating whether to copy content items to the build (or publish) output folder. Výchozí hodnota je false.The default is false.
vyrovnáníflatten Logická hodnota, která určuje, jestli kopírování obsahu položky do jediné složky ve výstupu sestavení (true) nebo chcete zachovat struktura složek v balíčku (false).A Boolean indicating whether to copy content items to a single folder in the build output (true), or to preserve the folder structure in the package (false). Tento příznak pouze funguje, když je příznak copyToOutput nastaven na hodnotu true.This flag only works when copyToOutput flag is set to true. Výchozí hodnota je false.The default is false.

Při instalaci balíčku, NuGet platí podřízených elementů <contentFiles> shora dolů.When installing a package, NuGet applies the child elements of <contentFiles> from top to bottom. Pokud stejný soubor shodovat s více položek se použijí všechny položky.If multiple entries match the same file then all entries are applied. Položka nejvyšší přepíše nižší položky, pokud dojde ke konfliktu pro stejný atribut.The top-most entry overrides the lower entries if there is a conflict for the same attribute.

Struktura složek balíčkuPackage folder structure

Balíček projekt by měl struktury obsah pomocí následujícího vzorce:The package project should structure content using the following pattern:

/contentFiles/{codeLanguage}/{TxM}/{any?}
  • codeLanguages může být cs, vb, fs, any, nebo malá ekvivalent danou $(ProjectLanguage)codeLanguages may be cs, vb, fs, any, or the lowercase equivalent of a given $(ProjectLanguage)
  • TxM je všechny Přezdívka právní cílový framework, který NuGet podporuje (viz cílové rozhraní).TxM is any legal target framework moniker that NuGet supports (see Target frameworks).
  • Libovolné struktury složek může připojen na konec této syntaxe.Any folder structure may be appended to the end of this syntax.

Příklad:For example:

Language- and framework-agnostic:
    /contentFiles/any/any/config.xml

net45 content for all languages
    /contentFiles/any/net45/config.xml

C#-specific content for net45 and up
    /contentFiles/cs/net45/sample.cs

Můžete použít prázdné složky . pro vyjádření výslovného nesouhlasu poskytování obsahu pro určité kombinace jazyka a TxM, například:Empty folders can use . to opt out of providing content for certain combinations of language and TxM, for example:

/contentFiles/vb/any/code.vb
/contentFiles/cs/any/.

Příklad contentFiles částiExample contentFiles section

<contentFiles>
    <!-- Embed image resources -->
    <files include="any/any/images/dnf.png" buildAction="EmbeddedResource" />
    <files include="any/any/images/ui.png" buildAction="EmbeddedResource" />

    <!-- Embed all image resources under contentFiles/cs/ -->
    <files include="cs/**/*.png" buildAction="EmbeddedResource" />

    <!-- Copy config.xml to the root of the output folder -->
    <files include="cs/uap/config/config.xml" buildAction="None" copyToOutput="true" flatten="true" />

    <!-- Copy run.cmd to the output folder and keep the directory structure -->
    <files include="cs/commands/run.cmd" buildAction="None" copyToOutput="true" flatten="false" />

    <!-- Include everything in the scripts folder except exe files -->
    <files include="cs/net45/scripts/*" exclude="**/*.exe"  buildAction="None" copyToOutput="true" />
</contentFiles>

Příklad příponou .nuspec souboryExample .nuspec files

Jednoduchý .nuspec která neurčuje závislosti nebo souboryA simple .nuspec that does not specify dependencies or files

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>sample</id>
        <version>1.2.3</version>
        <authors>Kim Abercrombie, Franck Halmaert</authors>
        <description>Sample exists only to show a sample .nuspec file.</description>
        <language>en-US</language>
        <projectUrl>http://xunit.codeplex.com/</projectUrl>
        <licenseUrl>http://xunit.codeplex.com/license</licenseUrl>
    </metadata>
</package>

A .nuspec se závislostmiA .nuspec with dependencies

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>sample</id>
        <version>1.0.0</version>
        <authors>Microsoft</authors>
        <dependencies>
            <dependency id="another-package" version="3.0.0" />
            <dependency id="yet-another-package" version="1.0.0" />
        </dependencies>
    </metadata>
</package>

A .nuspec se souboryA .nuspec with files

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>routedebugger</id>
        <version>1.0.0</version>
        <authors>Jay Hamlin</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Route Debugger is a little utility I wrote...</description>
    </metadata>
    <files>
        <file src="bin\Debug\*.dll" target="lib" />
    </files>
</package>

A .nuspec s framework sestaveníA .nuspec with framework assemblies

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>PackageWithGacReferences</id>
        <version>1.0</version>
        <authors>Author here</authors>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>
            A package that has framework assemblyReferences depending
            on the target framework.
        </description>
        <frameworkAssemblies>
            <frameworkAssembly assemblyName="System.Web" targetFramework="net40" />
            <frameworkAssembly assemblyName="System.Net" targetFramework="net40-client, net40" />
            <frameworkAssembly assemblyName="Microsoft.Devices.Sensors" targetFramework="sl4-wp" />
            <frameworkAssembly assemblyName="System.Json" targetFramework="sl3" />
        </frameworkAssemblies>
    </metadata>
</package>

V tomto příkladu následující se nainstalují pro konkrétní projekt cíle:In this example, the following are installed for specific project targets:

  • .NET4 -> System.Web, System.Net.NET4 -> System.Web, System.Net
  • . NET4 -> Client Profile System.Net.NET4 Client Profile -> System.Net
  • -> Silverlight 3 System.JsonSilverlight 3 -> System.Json
  • Silverlight 4 -> System.Windows.Controls.DomainServicesSilverlight 4 -> System.Windows.Controls.DomainServices
  • WindowsPhone -> Microsoft.Devices.SensorsWindowsPhone -> Microsoft.Devices.Sensors