dotnet nuget push
Dieser Artikel gilt für: ✔️ .NET Core 3.1 SDK und höher
Name
dotnet nuget push
– Überträgt ein Paket auf den Server und veröffentlicht es.
Übersicht
dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output]
[--interactive] [-k|--api-key <API_KEY>] [-n|--no-symbols]
[--no-service-endpoint] [-s|--source <SOURCE>] [--skip-duplicate]
[-sk|--symbol-api-key <API_KEY>] [-ss|--symbol-source <SOURCE>]
[-t|--timeout <TIMEOUT>]
dotnet nuget push -h|--help
Beschreibung
Der dotnet nuget push
-Befehl überträgt ein Paket auf den Server und veröffentlicht es. Der Pushbefehl verwendet Details zum Server und den Anmeldeinformationen aus der NuGet-Konfigurationsdatei oder der Kette von Konfigurationsdateien des Systems. Weitere Informationen zu Konfigurationsdateien finden Sie unter Configuring NuGet Behavior (Konfigurieren des Verhaltens von NuGet). Die NuGet-Standardkonfiguration wird abgerufen, indem %AppData%\NuGet\NuGet.config (Windows) oder $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) geladen wird. Anschließend wird eine beliebige nuget.config- oder .nuget\nuget.config-Datei geladen (beginnend mit dem Stamm des Laufwerks und endend im aktuellen Verzeichnis).
Der Befehl pusht ein vorhandenes Paket. Es wird kein Paket erstellt. Verwenden Sie dotnet pack
, um ein Paket zu erstellen.
Hierarchische Ordnerstruktur
Dieser Befehl kann Pakete in einer hierarchischen Ordnerstruktur speichern, die empfohlen wird, um die Leistung zu optimieren. Wie nuget add
speichert der Befehl Pakete in einer hierarchischen Ordnerstruktur, wenn die Veröffentlichung in einem lokalen Ordner (Feed) erfolgt. Dies geschieht, wenn bereits mindestens ein Paket im Feed vorhanden ist, das sich in einer hierarchischen Ordnerstruktur befindet. Wenn der Feed bereits ein hierarchisches Ordnerstrukturpaket enthält, berücksichtigt dotnet nuget push
diese Struktur. Gehen Sie wie folgt vor, wenn Sie mithilfe der .NET-CLI anstelle der NuGet-CLI in einem lokalen Feed veröffentlichen möchten:
- Bevor Sie das erste Paket veröffentlichen, wechseln Sie zu Ihrem globalen Paketordner unter %userprofile%.nuget\packages, und wählen Sie den Stammordner einer Paket-ID aus. Es kann sich um ein beliebiges Paket handeln, das nicht Teil eines Frameworks ist (z. B. .NET Standard oder ASP.NET).
- Kopieren Sie den ausgewählten Paketordner in den Stammordner des lokalen Feeds.
- Verwenden Sie
dotnet nuget push
zum Veröffentlichen Ihres Pakets im lokalen Feed. - Sie können jetzt den Ordner löschen, in den Sie zuvor kopiert haben, und Sie können
dotnet nuget push
zum Veröffentlichen in Ihrem lokalen Feed verwenden.
Alternativ können Sie die NuGet-CLI für das erste Paket und dann dotnet nuget push
für den Rest verwenden. Weitere Informationen finden Sie im Artikel zu lokalen Feeds.
Argumente
ROOT
Gibt den Dateipfad des Pakets an, das per Push übertragen werden soll.
Optionen
-d|--disable-buffering
Deaktiviert die Pufferung bei Übertragungen an HTTP(S)-Server, um die Speicherauslastung zu reduzieren.
--force-english-output
Erzwingt die Ausführung der Anwendung mithilfe einer invarianten Kultur, die auf Englisch basiert.
-?|-h|--help
Gibt eine Beschreibung zur Verwendung des Befehls aus.
--interactive
Ermöglicht dem Befehl, anzuhalten und auf Benutzereingaben oder Aktionen zu warten. Beispielsweise, um die Authentifizierung abzuschließen. Verfügbar seit .NET Core 3.0 SDK.
-k|--api-key <API_KEY>
Der API-Schlüssel für den Server.
-n|--no-symbols
Überträgt keine Symbole (selbst wenn vorhanden).
--no-service-endpoint
Fügt „api/v2/package“ nicht der Quell-URL an.
-s|--source <SOURCE>
Gibt die Server-URL an. NuGet identifiziert eine UNC oder lokale Ordnerquelle und kopiert die Datei dorthin, anstatt sie mithilfe von HTTP zu pushen.
Wichtig
Ab NuGet 3.4.2 handelt es sich hierbei um einen obligatorischen Parameter, außer in der NuGet-Konfigurationsdatei wird ein
DefaultPushSource
-Wert angegeben. Weitere Informationen finden Sie unter Konfigurieren des NuGet-Verhaltens.--skip-duplicate
Wenn Sie mehrere Pakete an einen HTTP(S)-Server pushen, werden alle Antworten des Typs „409 (Konflikt)“ als Warnung behandelt, sodass andere Pushvorgänge fortgesetzt werden können.
-sk|--symbol-api-key <API_KEY>
Der API-Schlüssel für den Symbolserver.
-ss|--symbol-source <SOURCE>
Gibt die Symbolserver-URL an.
-t|--timeout <TIMEOUT>
Gibt das Timeout für die Übertragung auf einen Server in Sekunden an. Der Standardwert ist 300 Sekunden (5 Minuten). Wenn 0 angegeben wird, wird der Standardwert angewendet.
Beispiele
Pusht foo.nupkg mithilfe eines API-Schlüssels an die in der NuGet-Konfigurationsdatei angegebene Standardpushquelle:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Überträgt foo.nupkg an den offiziellen NuGet-Server und gibt einen API-Schlüssel an:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
Überträgt foo.nupkg an die benutzerdefinierte Pushquelle
https://customsource
und gibt einen API-Schlüssel an:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Pusht foo.nupkg an die in der NuGet-Konfigurationsdatei angegebene Standardpushquelle:
dotnet nuget push foo.nupkg
Pusht foo.symbols.nupkg an die Standardsymbolquelle:
dotnet nuget push foo.symbols.nupkg
Pusht foo.nupkg an die in der NuGet-Konfigurationsdatei angegebene Standardpushquelle, mit einem Timeout von 360 Sekunden:
dotnet nuget push foo.nupkg --timeout 360
Pusht alle NUPKG-Dateien im aktuellen Verzeichnis an die in der NuGet-Konfigurationsdatei angegebene Standardpushquelle:
dotnet nuget push "*.nupkg"
Hinweis
Wenn dieser Befehl nicht funktioniert, kann dies an einem Fehler aus früheren Versionen des SDK liegen (.NET Core 2.1 SDK und frühere Versionen). Führen Sie ein Upgrade für das SDK durch, oder führen Sie stattdessen den folgenden Befehl aus, um diesen Fehler zu beheben:
dotnet nuget push "**/*.nupkg"
.Hinweis
Die einschließenden Anführungszeichen sind für Shells wie Bash erforderlich, die Dateiglobbing ausführen. Weitere Informationen finden Sie unter NuGet/Home#4393.
Pushen Sie alle .nupkg-Dateien an die in der NuGet-Konfigurationsdateien angegebene Standardpushquelle, auch wenn von einem HTTP(S)-Server eine Antwort des Typs „409 (Konflikt)“ zurückgegeben wird:
dotnet nuget push "*.nupkg" --skip-duplicate
Pushen Sie alle NUPKG-Dateien im aktuellen Verzeichnis an ein lokales Feedverzeichnis:
dotnet nuget push "*.nupkg" -s c:\mydir
Informationen zum Pushen an Azure Artifacts finden Sie in der Azure Artifacts-Dokumentation.