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.