Freigeben über


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.