pack-kommando (NuGet CLI)

Gäller för: skapa paket • Versioner som stöds: 2.7+

Skapar ett NuGet-paket baserat på den angivna .nuspec - eller projektfilen. Kommandot dotnet pack (se dotnet-kommandon) och msbuild -t:pack (se MSBuild-mål) kan användas som alternativ.

Important

Använd dotnet pack eller msbuild -t:pack för PackageReference-baserade projekt. Från och med NuGet version 6.5+ får packkommandot fel när du försöker packa dessa projekttyper. Tidigare versioner skulle försöka packa, men det genererade paketet kanske inte är korrekt. Under Mono stöds inte skapandet av ett paket från en projektfil. Du måste också justera icke-lokala sökvägar i .nuspec filen till Unix-sökvägar eftersom nuget.exe inte konverterar Windows sökvägar.

Usage

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

var <nuspecPath> och <projectPath> ange .nuspec projektfilen eller .

Options

  • -BasePath

    Anger bassökvägen för de filer som definierats i .nuspec-filen .

  • -Build

    Anger att projektet ska skapas innan paketet skapas.

  • -ConfigFile

    NuGet-konfigurationsfilen som ska tillämpas. Om det inte anges %AppData%\NuGet\NuGet.Config används (Windows) eller ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux).

  • -Deterministic

    (7.9+) Skapa paket i deterministiskt läge. Detta ger bit-identiska paket för samma indata (källkod, projektfil, byggkonfiguration), med en känd varning om tidsstämplar. Se DeterministicTimestamp hur du återskapar med identiska datum/tider.

  • -DeterministicTimestamp

    (7.9+) Ange en tidsstämpel som används som filändringsdatum/-tid för alla filer som läggs till i NuGet-paketet. Det kan vara ett datum/tid i RFC 3339-format (till exempel 1996-12-19T16:39:57-08:00), det kan vara antalet sekunder som inte är skott sekunder sedan 00:00:00 UTC den 1 januari 1970 (även kallat Unix-tid), eller det kan vara den speciella strängen true (standard, använd den aktuella klocktiden för väggen) eller false att inte ändra filtider när du skapar deterministiska paket. Det här alternativet ignoreras om Deterministic det inte är aktiverat.

  • -Exclude

    Anger ett eller flera jokerteckenmönster som ska undantas när du skapar ett paket. Om du vill ange fler än ett mönster upprepar du flaggan -Exclude. Se exemplet nedan.

  • -ExcludeEmptyDirectories

    Förhindrar inkludering av tomma kataloger när paketet skapas.

  • -ForceEnglishOutput

    (3.5+) Tvingar nuget.exe att köras med hjälp av en invariant, engelskbaserad kultur.

  • -?|-help

    Visar hjälpinformation för kommandot.

  • -IncludeReferencedProjects

    Anger att det byggda paketet ska innehålla refererade projekt antingen som beroenden eller som en del av paketet. Om ett refererat projekt har en motsvarande .nuspec fil som har samma namn som projektet läggs det refererade projektet till som ett beroende. Annars läggs det refererade projektet till som en del av paketet.

  • -InstallPackageToOutputPath

    Ange om kommandot ska förbereda paketets utdatakatalog för att stödja resursen som feed.

  • -MinClientVersion

    Ange attributet minClientVersion för det skapade paketet. Det här värdet åsidosätter värdet för det befintliga attributet minClientVersion (om det finns något) i .nuspec filen.

  • -MSBuildPath

    (4.0+) Anger sökvägen till MSBuild som ska användas med kommandot och har företräde framför -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Anger vilken version av MSBuild som ska användas med det här kommandot. Värden som stöds är 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Som standard väljs MSBuild i sökvägen, annars är den den högsta installerade versionen av MSBuild som standard.

  • -NoDefaultExcludes

    Förhindrar standardundantag för NuGet-paketfiler och filer och mappar som börjar med en punkt, till exempel .svn och .gitignore.

  • -NonInteractive

    Undertrycker uppmaningar om användarindata eller bekräftelser.

  • -NoPackageAnalysis

    Anger att paketet inte ska köra paketanalys när paketet har skapats.

  • -OutputDirectory

    Anger mappen där det skapade paketet lagras. Om ingen mapp har angetts används den aktuella mappen.

  • -OutputFileNamesWithoutVersion

    Ange om kommandot ska förbereda paketets utdatanamn utan versionen.

  • -PackagesDirectory

    Anger paketmappen.

  • -p|-Properties

    Ska visas sist på kommandoraden efter andra alternativ. Anger en lista med egenskaper som åsidosätter värden i filen project. Se Common MSBuild Project Egenskaper för egenskapsnamn. Argumentet Egenskaper här är en lista över token=value-par, avgränsade med semikolon, där varje förekomst av $token$ i .nuspec filen ersätts med det angivna värdet. Värden kan vara strängar inom citattecken. Observera att för egenskapen "Konfiguration" är standardvärdet "Felsökning". Om du vill ändra till en versionskonfiguration använder du -Properties Configuration=Release. I allmänhet bör egenskaper vara samma som användes under motsvarande projektversion för att undvika potentiellt konstigt beteende.

  • -SolutionDirectory

    Anger lösningskatalogen.

  • -Suffix

    (3.4.4+) Lägger till ett suffix i det internt genererade versionsnumret, som vanligtvis används för att lägga till version eller andra förhandsversionsidentifierare. Om du till exempel använder -suffix nightly skapas ett paket med ett versionsnummer som 1.2.3-nightly. Suffix måste börja med en bokstav för att undvika varningar, fel och potentiella inkompatibiliteter med olika versioner av NuGet och NuGet-Správca balíkov.

  • -SymbolPackageFormat

    När du skapar ett symbolpaket kan du välja mellan snupkg formatet och symbols.nupkg .

  • -Symbols

    Anger att paketet innehåller källor och symboler. När den används med en .nuspec fil skapas en vanlig NuGet-paketfil och motsvarande symbolpaket. Som standard skapas ett äldre symbolpaket. Det nya rekommenderade formatet för symbolpaket är .snupkg. Se Skapa symbolpaket (.snupkg).

  • -Tool

    Anger att utdatafilerna för projektet ska placeras i mappen i tools paketet.

  • -Verbosity [normal|quiet|detailed]

    Anger mängden information som visas i utdata: normal (standard), quiet, eller detailed.

  • -Version

    Åsidosätter versionsnumret från .nuspec filen.

Se även Miljövariabler

Exkluderande utvecklingsberoenden

Vissa NuGet-paket är användbara som utvecklingsberoenden, som hjälper dig att skapa ditt eget bibliotek, men som inte nödvändigtvis behövs som faktiska paketberoenden.

Kommandot pack ignorerar poster i packages.config som har developmentDependency attributet inställt på truepackage . Dessa poster inkluderas inte som beroenden i det skapade paketet.

Tänk till exempel på följande packages.config fil i källprojektet:

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

För det här projektet kommer paketet som skapas av nuget pack att ha ett beroende av jQuery och microsoft-web-helpers men inte netfx-Guard.

Ignorera packvarningar

Vi rekommenderar att du löser alla NuGet-varningar under din paketåtgärd, men i vissa situationer är det motiverat att ignorera dem.

Du kan uppnå det på följande sätt:

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

Exempel

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"

Note

Kommandot pack för SDK-projekt stöds inte, använd dotnet pack eller msbuild -t:pack för att packa dessa projekt i stället.