Pack-Befehl (NuGet CLI)

Gilt für: Paketerstellung • Unterstützte Versionen: 2.7+

Erstellt ein NuGet-Paket basierend auf der angegebenen NUSPEC - oder Projektdatei. Der dotnet pack Befehl (siehe dotnet-Befehle) und msbuild -t:pack (siehe MSBuild-Ziele) können als Alternative verwendet werden.

Important

Verwenden oder dotnet packmsbuild -t:pack für PackageReference-basierte Projekte. Ab NuGet, Version 6.5+, tritt beim Packen dieser Projekttypen ein Fehler auf. Frühere Versionen würden versuchen, ein Paket zu packen, aber das generierte Paket ist möglicherweise nicht korrekt. Unter Mono wird das Erstellen eines Pakets aus einer Projektdatei nicht unterstützt. Sie müssen auch nicht lokale Pfade in der .nuspec Datei an Unix-Formatpfade anpassen, da nuget.exe nicht Windows Pfadnamen selbst konvertiert.

Usage

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

wobei <nuspecPath> bzw <projectPath> . die .nuspec Projektdatei angegeben wird.

Optionen

  • -BasePath

    Legt den Basispfad der in der NUSPEC-Datei definierten Dateien fest.

  • -Build

    Gibt an, dass das Projekt vor dem Erstellen des Pakets erstellt werden soll.

  • -ConfigFile

    Die NuGet-Konfigurationsdatei. Wenn nicht angegeben, %AppData%\NuGet\NuGet.Config (Windows) oder ~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config (Mac/Linux) wird verwendet.

  • -Deterministic

    (7,9+) Erstellen Sie Pakete im deterministischen Modus. Dies erzeugt Bit-identische Pakete für die gleiche Eingabe (Quellcode, Projektdatei, Buildkonfiguration), mit einer bekannten Einschränkung von Zeitstempeln. Erfahren Sie, wie Sie DeterministicTimestamp mit identischen Datums-/Uhrzeitangaben reproduzieren.

  • -DeterministicTimestamp

    (7,9+) Geben Sie einen Zeitstempel an, der als Datum/Uhrzeit der Dateiänderung für alle Dateien verwendet wird, die dem NuGet-Paket hinzugefügt wurden. Es kann sich um ein Datum/eine Uhrzeit im RFC 3339-Format handeln (z 1996-12-19T16:39:57-08:00. B. ), es kann sich um die Anzahl von Nicht-Schalt sekunden seit 00:00:00 UTC am 1. Januar 1970 (auch als Unix-Zeit bezeichnet) handeln, oder es kann sich um die spezielle Zeichenfolge true (Standard, Verwendung der aktuellen Wanduhrzeit) oder false um Dateizeiten beim Erstellen deterministischer Pakete nicht zu ändern. Diese Option wird ignoriert, wenn Deterministic sie nicht aktiviert ist.

  • -Exclude

    Gibt ein oder mehrere Wildcardmuster an, die beim Erstellen eines Pakets ausgeschlossen werden sollen. Wenn Sie mehrere Muster angeben möchten, wiederholen Sie das -Exclude Flag. Ein Beispiel sehen Sie unten.

  • -ExcludeEmptyDirectories

    Verhindert die Aufnahme leerer Verzeichnisse beim Erstellen des Pakets.

  • -ForceEnglishOutput

    (3,5+) Erzwingt nuget.exe, eine invariante, englische Kultur zu verwenden.

  • -?|-help

    Druckt Hilfeinformationen für den Befehl.

  • -IncludeReferencedProjects

    Gibt an, dass das integrierte Paket referenzierte Projekte entweder als Abhängigkeiten oder als Teil des Pakets enthalten soll. Wenn ein referenziertes Projekt über eine entsprechende .nuspec Datei mit demselben Namen wie das Projekt verfügt, wird das referenzierte Projekt als Abhängigkeit hinzugefügt. Andernfalls wird das referenzierte Projekt als Teil des Pakets hinzugefügt.

  • -InstallPackageToOutputPath

    Geben Sie an, ob der Befehl das Paketausgabeverzeichnis für die Unterstützung der Freigabe als Feed vorbereiten soll.

  • -MinClientVersion

    Legen Sie das minClientVersion-Attribut für das erstellte Paket fest. Dieser Wert überschreibt den Wert des vorhandenen minClientVersion-Attributs (sofern vorhanden) in der .nuspec Datei.

  • -MSBuildPath

    (4,0+) Gibt den Pfad von MSBuild an, der mit dem Befehl verwendet werden soll und Vorrang hat -MSBuildVersion.

  • -MSBuildVersion

    (3.2+) Gibt die Version von MSBuild an, die mit diesem Befehl verwendet werden soll. Unterstützte Werte sind 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. Standardmäßig wird "MSBuild" in Ihrem Pfad ausgewählt, andernfalls wird standardmäßig die höchste installierte Version von MSBuild verwendet.

  • -NoDefaultExcludes

    Verhindert den Standardausschluss von NuGet-Paketdateien und -dateien und -ordnern beginnend mit einem Punkt, z .svn . B. und .gitignore.

  • -NonInteractive

    Fordert nicht zu Eingaben oder Bestätigungen des Benutzers auf.

  • -NoPackageAnalysis

    Gibt an, dass das Paket nach dem Erstellen des Pakets keine Paketanalyse ausführen soll.

  • -OutputDirectory

    Gibt den Ordner an, in dem das erstellte Paket gespeichert wird. Wenn kein Ordner angegeben ist, wird der aktuelle Ordner verwendet.

  • -OutputFileNamesWithoutVersion

    Geben Sie an, ob der Befehl den Paketausgabenamen ohne die Version vorbereiten soll.

  • -PackagesDirectory

    Gibt den Ordner "Pakete" an.

  • -p|-Properties

    Sollte nach anderen Optionen in der Befehlszeile zuletzt angezeigt werden. Gibt eine Liste von Eigenschaften an, die Werte in der project Datei außer Kraft setzen. Weitere Informationen finden Sie unter Common MSBuild Project Properties for property names. Das Argument "Properties" ist hier eine Liste von Token=Wertpaaren, getrennt durch Semikolons, wobei jedes Vorkommen $token$ in der .nuspec Datei durch den angegebenen Wert ersetzt wird. Werte können Zeichenfolgen in Anführungszeichen sein. Beachten Sie, dass für die Eigenschaft "Configuration" der Standardwert "Debug" lautet. Um zu einer Release-Konfiguration zu wechseln, verwenden Sie -Properties Configuration=Release. Im Allgemeinen sollten Eigenschaften identisch sein, die während des entsprechenden Projektbuilds verwendet wurden, um potenziell seltsames Verhalten zu vermeiden.

  • -SolutionDirectory

    Gibt das Lösungsverzeichnis an.

  • -Suffix

    (3.4.4+) Fügt ein Suffix an die intern generierte Versionsnummer an, die normalerweise zum Anfügen von Build- oder anderen Vorab-IDs verwendet wird. Die Verwendung -suffix nightly erstellt z. B. ein Paket mit einer Versionsnummer wie 1.2.3-nightly. Suffixe müssen mit einem Buchstaben beginnen, um Warnungen, Fehler und potenzielle Inkompatibilitäten mit verschiedenen Versionen von NuGet und der NuGet-Paket-Manager zu vermeiden.

  • -SymbolPackageFormat

    Beim Erstellen eines Symbolpakets können Sie zwischen dem Symbol und symbols.nupkg dem snupkg Format wählen.

  • -Symbols

    Gibt an, dass das Paket Quellen und Symbole enthält. Bei Verwendung mit einer .nuspec Datei erstellt dies eine normale NuGet-Paketdatei und das entsprechende Symbolpaket. Standardmäßig wird ein Legacysymbolpaket erstellt. Das neue empfohlene Format für Symbolpakete ist .snupkg. Siehe Erstellen von Symbolpaketen (.snupkg).

  • -Tool

    Gibt an, dass die Ausgabedateien des Projekts im tools Ordner innerhalb des Pakets platziert werden sollen.

  • -Verbosity [normal|quiet|detailed]

    Gibt an, wie viele Details in der Ausgabe angezeigt werden: normal (der Standard), quiet oder detailed.

  • -Version

    Überschreibt die Versionsnummer aus der .nuspec Datei.

Siehe auch Umgebungsvariablen

Ausschließen von Entwicklungsabhängigkeiten

Einige NuGet-Pakete sind nützlich als Entwicklungsabhängigkeiten, die Ihnen beim Erstellen Ihrer eigenen Bibliothek helfen, aber nicht unbedingt als tatsächliche Paketabhängigkeiten erforderlich sind.

Der pack Befehl ignoriert package Einträge, in packages.config denen das developmentDependency Attribut auf true. Diese Einträge werden nicht als Abhängigkeiten im erstellten Paket eingeschlossen.

Betrachten Sie beispielsweise die folgende packages.config Datei im Quellprojekt:

<?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 dieses Projekt hat das erstellte nuget pack Paket eine Abhängigkeit jQuery von und microsoft-web-helpers nicht netfx-Guard.

Unterdrücken von Packwarnungen

Es wird zwar empfohlen, alle NuGet-Warnungen während des Packvorgangs zu beheben, in bestimmten Situationen wird jedoch die Unterdrückung dieser Warnungen garantiert.

Sie können dies auf folgende Weise erreichen:

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

Beispiele

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

Der pack Befehl für PROJEKTE im SDK-Stil wird nicht unterstützt, verwendet dotnet pack oder msbuild -t:pack packt diese Projekte stattdessen.