pack-opdracht (NuGet CLI)

Van toepassing op: het maken van pakketten • Ondersteunde versies: 2.7+

Hiermee maakt u een NuGet-pakket op basis van het opgegeven .nuspec - of projectbestand. De dotnet pack opdracht (zie dotnet-opdrachten) en msbuild -t:pack (zie MSBuild-doelen) kunnen als alternatief worden gebruikt.

Important

Gebruik dotnet pack of msbuild -t:pack voor op PackageReference gebaseerde projecten. Vanaf NuGet versie 6.5+ wordt met de opdracht pack een fout weergegeven bij het inpakken van deze projecttypen. Eerdere versies proberen in te pakken, maar het gegenereerde pakket is mogelijk niet juist. Onder Mono wordt het maken van een pakket op basis van een projectbestand niet ondersteund. U moet ook niet-lokale paden in het .nuspec bestand aanpassen aan Unix-stijlpaden, omdat nuget.exe Windows padnamen zelf niet converteert.

Usage

nuget pack <nuspecPath | projectPath> [options] [-Properties ...]

waarbij <nuspecPath> respectievelijk <projectPath> het projectbestand of het .nuspec projectbestand wordt opgegeven.

Opties

  • -BasePath

    Hiermee stelt u het basispad in van de bestanden die zijn gedefinieerd in het .nuspec-bestand .

  • -Build

    Hiermee geeft u op dat het project moet worden gebouwd voordat het pakket wordt gebouwd.

  • -ConfigFile

    Het NuGet-configuratiebestand dat moet worden toegepast. Als dit niet is opgegeven, %AppData%\NuGet\NuGet.Config (Windows) of ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux) wordt gebruikt.

  • -Deterministic

    (7,9+) Bouw pakketten in deterministische modus. Dit produceert bit-identieke pakketten voor dezelfde invoer (broncode, projectbestand, buildconfiguratie), met een bekend voorbehoud van tijdstempels. Meer informatie DeterministicTimestamp over het reproduceren met identieke datum/tijden.

  • -DeterministicTimestamp

    (7,9+) Geef een tijdstempel op die wordt gebruikt als de datum/tijd voor bestandswijziging voor alle bestanden die zijn toegevoegd aan het NuGet-pakket. Het kan een datum/tijd zijn in RFC 3339-indeling (zoals 1996-12-19T16:39:57-08:00), het kan het aantal seconden zijn dat niet schrikkelt sinds 00:00:00 UTC op 1 januari 1970 (ook wel de Unix-tijd genoemd), of het kan de speciale tekenreeks true (standaard, de huidige kloktijd van de wand gebruiken) zijn of false om bestandstijden niet te wijzigen bij het maken van deterministische pakketten. Deze optie wordt genegeerd als Deterministic deze niet is ingeschakeld.

  • -Exclude

    Hiermee geeft u een of meer jokertekenpatronen op die moeten worden uitgesloten bij het maken van een pakket. Als u meer dan één patroon wilt opgeven, herhaalt u de -Exclude vlag. Zie het voorbeeld hieronder.

  • -ExcludeEmptyDirectories

    Voorkomt het opnemen van lege mappen bij het bouwen van het pakket.

  • -ForceEnglishOutput

    (3,5+) Dwingt nuget.exe uit te voeren met behulp van een invariante, Engelse cultuur.

  • -?|-help

    Geeft help-informatie weer voor de opdracht.

  • -IncludeReferencedProjects

    Geeft aan dat het ingebouwde pakket projecten moet bevatten waarnaar wordt verwezen, hetzij als afhankelijkheden of als onderdeel van het pakket. Als een project waarnaar wordt verwezen een overeenkomend .nuspec-bestand met dezelfde naam heeft als het project, wordt dat project als een afhankelijkheid toegevoegd. Anders wordt het project waarnaar wordt verwezen toegevoegd als onderdeel van het pakket.

  • -InstallPackageToOutputPath

    Geef op of de opdracht de uitvoermap van het pakket moet voorbereiden om share als feed te ondersteunen.

  • -MinClientVersion

    Stel het kenmerk minClientVersion in voor het gemaakte pakket. Met deze waarde wordt de waarde van het bestaande minClientVersion-kenmerk (indien aanwezig) in het .nuspec bestand overschreven.

  • -MSBuildPath

    (4,0+) Hiermee geeft u het pad van MSBuild te gebruiken met de opdracht, prioriteit boven -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Hiermee geeft u de versie van MSBuild moet worden gebruikt met deze opdracht. Ondersteunde waarden zijn 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Standaard wordt de MSBuild in uw pad gekozen, anders wordt deze standaard ingesteld op de hoogst geïnstalleerde versie van MSBuild.

  • -NoDefaultExcludes

    Voorkomt standaarduitsluiting van NuGet-pakketbestanden en -bestanden en -mappen die beginnen met een punt, zoals .svn en .gitignore.

  • -NonInteractive

    Onderdrukt vragen om gebruikersinvoer of bevestigingen.

  • -NoPackageAnalysis

    Hiermee geeft u op dat pakket geen pakketanalyse mag uitvoeren nadat het pakket is gebouwd.

  • -OutputDirectory

    Hiermee geeft u de map waarin het gemaakte pakket wordt opgeslagen. Als er geen map is opgegeven, wordt de huidige map gebruikt.

  • -OutputFileNamesWithoutVersion

    Geef op of de opdracht de naam van de pakketuitvoer moet voorbereiden zonder de versie.

  • -PackagesDirectory

    Hiermee geeft u de map pakketten.

  • -p|-Properties

    Moet na andere opties als laatste op de opdrachtregel worden weergegeven. Hiermee geeft u een lijst met eigenschappen die waarden in het bestand project overschrijven. Zie Common MSBuild Project Properties for property names. Het argument Eigenschappen hier is een lijst met token=waardeparen, gescheiden door puntkomma's, waarbij elk exemplaar van $token$ het .nuspec bestand wordt vervangen door de opgegeven waarde. Waarden kunnen tekenreeksen tussen aanhalingstekens zijn. Houd er rekening mee dat voor de eigenschap 'Configuratie' de standaardwaarde 'Fouten opsporen' is. Als u wilt overschakelen naar een releaseconfiguratie, gebruikt u -Properties Configuration=Release. Over het algemeen moeten eigenschappen hetzelfde zijn die zijn gebruikt tijdens de bijbehorende projectbuild, om mogelijk vreemd gedrag te voorkomen.

  • -SolutionDirectory

    Hiermee geeft u de oplossingsmap.

  • -Suffix

    (3.4.4+) Voegt een achtervoegsel toe aan het intern gegenereerde versienummer, dat doorgaans wordt gebruikt voor het toevoegen van build- of andere pre-release-id's. Als u -suffix nightly bijvoorbeeld een pakket maakt met een versienummer zoals 1.2.3-nightly. Achtervoegsels moeten beginnen met een letter om waarschuwingen, fouten en mogelijke incompatibiliteit met verschillende versies van NuGet en de NuGet-Pakketbeheer te voorkomen.

  • -SymbolPackageFormat

    Wanneer u een symboolpakket maakt, kunt u kiezen tussen de snupkg ene symbols.nupkg indeling.

  • -Symbols

    Hiermee geeft u op dat het pakket bronnen en symbolen bevat. Bij gebruik met een .nuspec-bestand wordt hiermee een gewoon NuGet-pakketbestand en het bijbehorende symbolenpakket gemaakt. Standaard wordt er een verouderd symboolpakket gemaakt. De nieuwe aanbevolen indeling voor symboolpakketten is .snupkg. Zie Symbolenpakketten maken (.snupkg).

  • -Tool

    Hiermee geeft u op dat de uitvoerbestanden van het project moeten worden geplaatst in de tools map in het pakket.

  • -Verbosity [normal|quiet|detailed]

    Hiermee geeft u de hoeveelheid details op die wordt weergegeven in de uitvoer: normal (de standaardinstelling), quietof detailed.

  • -Version

    Hiermee wordt het versienummer van het .nuspec bestand overschreven.

Zie ook Omgevingsvariabelen

Ontwikkelingsafhankelijkheden uitsluiten

Sommige NuGet-pakketten zijn handig als ontwikkelingsafhankelijkheden, waarmee u uw eigen bibliotheek kunt ontwerpen, maar die niet per se nodig zijn als werkelijke pakketafhankelijkheden.

De pack opdracht negeert package vermeldingen waarin packages.config het developmentDependency kenmerk is ingesteld op true. Deze vermeldingen worden niet opgenomen als afhankelijkheden in het gemaakte pakket.

Denk bijvoorbeeld aan het volgende packages.config bestand in het bronproject:

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="jQuery" version="1.5.2" />
    <package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
    <package id="microsoft-web-helpers" version="1.15" />
</packages>

Voor dit project heeft het pakket dat is gemaakt door nuget pack een afhankelijkheid jQuery van en microsoft-web-helpers niet netfx-Guard.

Packwaarschuwingen onderdrukken

Hoewel het wordt aanbevolen om alle NuGet-waarschuwingen tijdens uw packbewerkingen op te lossen, is het in bepaalde situaties gerechtvaardigd om ze te onderdrukken.

U kunt dat op de volgende manier bereiken:

nuget.exe pack package.nuspec -Properties NoWarn=NU5104

Voorbeelden

nuget pack

nuget pack foo.nuspec

nuget pack foo.csproj

nuget pack foo.csproj -Properties Configuration=Release

nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg

nuget pack foo.nuspec -Version 2.1.0

nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5

nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"

Opmerking

De pack opdracht voor SDK-projecten wordt niet ondersteund, gebruikt dotnet pack of msbuild -t:pack verpakt deze projecten in plaats daarvan.