dotnet nuget push

Questo articolo si applica a: ✔️ .NET Core 3.1 SDK e versioni successive

Nome

dotnet nuget push: effettua il push di un pacchetto nel server e lo pubblica.

Riepilogo

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

Descrizione

Il comando dotnet nuget push effettua il push di un pacchetto nel server e lo pubblica. Il comando di push usa dettagli del server e delle credenziali presenti nel file di configurazione NuGet o nella catena di file di configurazione del sistema. Per altre informazioni sui file di configurazione, vedere Configuring NuGet Behavior (Configurazione del comportamento di NuGet). La configurazione predefinita di NuGet si ottiene caricando %AppData%\NuGet\NuGet.config (Windows) o $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) e quindi caricando qualsiasi file nuget.config o .nuget\nuget.config dalla directory radice dell'unità nella directory corrente.

Il comando esegue il push di un pacchetto esistente. Non crea un pacchetto. Per creare un pacchetto, usare dotnet pack.

Struttura gerarchica delle cartelle

Questo comando può archiviare i pacchetti in una struttura di cartelle gerarchica, consigliata per ottimizzare le prestazioni. Archivia i pacchetti in una struttura di cartelle gerarchica durante la pubblicazione in una cartella locale (feed), analogamente a quanto avviene con nuget add, se esiste già almeno un pacchetto nel feed che si trova in una struttura di cartelle gerarchica. Se il feed contiene già un pacchetto con struttura di cartelle gerarchica, dotnet nuget push rispetta tale struttura. Se quindi si vuole pubblicare in un feed locale usando l'interfaccia della riga di comando di .NET anziché l'interfaccia della riga di comando di NuGet:

  • Prima di pubblicare il primo pacchetto, passare alla cartella dei pacchetti globali, in %userprofile%.nuget\packages, e selezionare la cartella radice di un ID pacchetto. Può essere qualsiasi pacchetto che non fa parte di un framework, ad esempio .NET Standard o ASP.NET.
  • Copiare la cartella del pacchetto selezionata nella cartella radice del feed locale.
  • Usare dotnet nuget push per pubblicare il pacchetto nel feed locale.
  • È ora possibile eliminare la cartella copiata in precedenza ed è possibile usare liberamente dotnet nuget push per pubblicare nel feed locale.

In alternativa, usare l'interfaccia della riga di comando di NuGet per il primo pacchetto, quindi è possibile usare dotnet nuget push per il resto. Per altre informazioni, vedere Feed locali.

Argomenti

  • ROOT

    Specifica il percorso del file del pacchetto di cui eseguire il push.

Opzioni

  • -d|--disable-buffering

    Disabilita la memorizzazione nel buffer quando si effettua il push a un server HTTP(S) per ridurre l'utilizzo della memoria.

  • --force-english-output

    Impone all'applicazione l'esecuzione con una cultura invariante e di lingua inglese.

  • -?|-h|--help

    Stampa le istruzioni di utilizzo del comando.

  • --interactive

    Consente al comando di arrestarsi e attendere l'input o l'azione dell'utente, ad esempio il completamento dell'autenticazione. Disponibile a partire da .NET Core 3.0 SDK.

  • -k|--api-key <API_KEY>

    Chiave API per il server.

  • -n|--no-symbols

    Non effettua il push dei simboli (anche se presenti).

  • --no-service-endpoint

    Non aggiunge "api/v2/package" all'URL di origine.

  • -s|--source <SOURCE>

    Specifica l'URL del server. NuGet identifica un'origine di cartelle UNC o locale e copia semplicemente il file in tale posizione anziché eseguirne il push tramite HTTP.

    Importante

    A partire da NuGet 3.4.2, questo è un parametro obbligatorio a meno che il file di configurazione di NuGet non specifichi un valore DefaultPushSource. Per altre informazioni, vedere Configuring NuGet behavior (Configurazione del comportamento di NuGet).

  • --skip-duplicate

    Quando viene eseguito il push di più pacchetti in un server HTTP(S), considera qualsiasi risposta 409 di conflitto come avviso in modo che altri push possano procedere.

  • -sk|--symbol-api-key <API_KEY>

    Chiave API per il server di simboli.

  • -ss|--symbol-source <SOURCE>

    Specifica l'URL del server di simboli.

  • -t|--timeout <TIMEOUT>

    Specifica il timeout (in secondi) per il push a un server. Il valore predefinito è 300 secondi (5 minuti). Se si specifica 0, viene applicato il valore predefinito.

Esempi

  • Eseguire il push di foo.nupkg nell'origine push predefinita specificata nel file di configurazione di NuGet usando una chiave API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
    
  • Eseguire il push di foo.nupkg nel server NuGet ufficiale, specificando una chiave API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
    
  • Esegue il push di foo.nupkg all'origine push personalizzata https://customsource, specificando una chiave API:

    dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
    
  • Eseguire il push di foo.nupkg nell'origine push predefinita specificata nel file di configurazione di NuGet:

    dotnet nuget push foo.nupkg
    
  • Eseguire il push di foo.symbols.nupkg nell'origine simboli predefinita:

    dotnet nuget push foo.symbols.nupkg
    
  • Eseguire il push di foo.nupkg nell'origine push predefinita specificata nel file di configurazione di NuGet con un timeout di 360 secondi:

    dotnet nuget push foo.nupkg --timeout 360
    
  • Eseguire il push di tutti i file con estensione nupkg della directory corrente nell'origine push predefinita specificata nel file di configurazione di NuGet:

    dotnet nuget push "*.nupkg"
    

    Nota

    Il mancato funzionamento di questo comando può dipendere da un bug che era presente nelle versioni precedenti del SDK (.NET Core 2.1 SDK e versioni precedenti). Per risolvere questo problema, aggiornare la versione del SDK oppure eseguire il comando seguente: dotnet nuget push "**/*.nupkg"

    Nota

    Le virgolette di inclusione sono necessarie per le shell come Bash che applicano l'utilizzo dei caratteri jolly nei file. Per altre informazioni, vedere NuGet/Home#4393.

  • Eseguire il push di tutti i file con estensione nupkg nell'origine push predefinita specificata nel file di configurazione di NuGet, anche se viene restituita una risposta 409 di conflitto da un server HTTP(S):

    dotnet nuget push "*.nupkg" --skip-duplicate
    
  • Eseguire il push di tutti i file con estensione nupkg della directory corrente in una directory del feed locale:

    dotnet nuget push "*.nupkg" -s c:\mydir
    
  • Per il push in Azure Artifacts, vedere la documentazione sul push di Azure Artifacts.