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.

Wichtig

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-Stil-Pfade anpassen, da nuget.exe windows pathnames selbst nicht konvertiert.

Verbrauch

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

wobei <nuspecPath> und <projectPath> die Datei .nuspec bzw. die Projektdatei angeben.

Optionen

  • -BasePath

    Der Basispfad der in der .nuspec-Datei definierten Dateien.

  • -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.

  • -Exclude

    Gibt ein oder mehrere Wild Karte muster an, die beim Erstellen eines Pakets ausgeschlossen werden sollen. Wenn Sie mehrere Muster angeben möchten, wiederholen Sie das Flag "-Exclude". Siehe Beispiel unten.

  • -ExcludeEmptyDirectories

    Verhindert die Aufnahme leerer Verzeichnisse beim Erstellen des Pakets.

  • -ForceEnglishOutput

    (3.5+) Erzwingt die Ausführung der Anwendung mithilfe einer invarianten Kultur, die auf Englisch basiert.

  • -?|-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 hat Vorrang vor -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 der Packvorgang keine Paketanalyse nach dem Erstellen des Pakets ausführen sollte.

  • -OutputDirectory

    Gibt den Ordner an, in dem das erstellte Paket gespeichert wird. Wird dieses Argument nicht angegeben, 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 auf der Befehlszeile zuletzt angezeigt werden. Gibt eine Liste von Eigenschaften an, die Werte in der Projektdatei überschreiben; siehe Allgemeine MSBuild-Projekteigenschaften für Eigenschaftennamen. Das Argument Eigenschaften ist hier eine Liste von Token=Wert-Paaren, die durch Semikolons getrennt sind, wobei jedes Vorkommen von $token$ in der Datei .nuspec durch den angegebenen Wert ersetzt wird. Die 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 snupkg und symbols.nupkg Format wählen.

  • -Symbols

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

  • -Tool

    Gibt an, dass die Ausgabedateien des Projekts im Ordner tools des Pakets abgelegt 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.

Weitere Informationen finden Sie unter 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 Warnungen

Es wird empfohlen, alle NuGet-Warnungen während der Pack- und Wiederherstellungsvorgänge aufzulösen; in bestimmten Situationen wird deren Auflösung verlangt.

Auf diese Weise können Sie die folgenden Ziele 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"

Hinweis

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