Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
-BasePathLegt den Basispfad der in der NUSPEC-Datei definierten Dateien fest.
-BuildGibt an, dass das Projekt vor dem Erstellen des Pakets erstellt werden soll.
-ConfigFileDie 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
DeterministicTimestampmit 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 Zeichenfolgetrue(Standard, Verwendung der aktuellen Wanduhrzeit) oderfalseum Dateizeiten beim Erstellen deterministischer Pakete nicht zu ändern. Diese Option wird ignoriert, wennDeterministicsie nicht aktiviert ist.-ExcludeGibt 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.
-ExcludeEmptyDirectoriesVerhindert die Aufnahme leerer Verzeichnisse beim Erstellen des Pakets.
-ForceEnglishOutput(3,5+) Erzwingt nuget.exe, eine invariante, englische Kultur zu verwenden.
-?|-helpDruckt Hilfeinformationen für den Befehl.
-IncludeReferencedProjectsGibt 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
.nuspecDatei 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.-InstallPackageToOutputPathGeben Sie an, ob der Befehl das Paketausgabeverzeichnis für die Unterstützung der Freigabe als Feed vorbereiten soll.
-MinClientVersionLegen Sie das minClientVersion-Attribut für das erstellte Paket fest. Dieser Wert überschreibt den Wert des vorhandenen minClientVersion-Attributs (sofern vorhanden) in der
.nuspecDatei.-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.
-NoDefaultExcludesVerhindert den Standardausschluss von NuGet-Paketdateien und -dateien und -ordnern beginnend mit einem Punkt, z
.svn. B. und.gitignore.-NonInteractiveFordert nicht zu Eingaben oder Bestätigungen des Benutzers auf.
-NoPackageAnalysisGibt an, dass das Paket nach dem Erstellen des Pakets keine Paketanalyse ausführen soll.
-OutputDirectoryGibt den Ordner an, in dem das erstellte Paket gespeichert wird. Wenn kein Ordner angegeben ist, wird der aktuelle Ordner verwendet.
-OutputFileNamesWithoutVersionGeben Sie an, ob der Befehl den Paketausgabenamen ohne die Version vorbereiten soll.
-PackagesDirectoryGibt den Ordner "Pakete" an.
-p|-PropertiesSollte 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.nuspecDatei 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.-SolutionDirectoryGibt 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 nightlyerstellt z. B. ein Paket mit einer Versionsnummer wie1.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.-SymbolPackageFormatBeim Erstellen eines Symbolpakets können Sie zwischen dem Symbol und
symbols.nupkgdemsnupkgFormat wählen.-SymbolsGibt an, dass das Paket Quellen und Symbole enthält. Bei Verwendung mit einer
.nuspecDatei 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).-ToolGibt an, dass die Ausgabedateien des Projekts im
toolsOrdner innerhalb des Pakets platziert werden sollen.-Verbosity [normal|quiet|detailed]Gibt an, wie viele Details in der Ausgabe angezeigt werden:
normal(der Standard),quietoderdetailed.-VersionÜberschreibt die Versionsnummer aus der
.nuspecDatei.
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.