dotnet nuget push
Este artigo se aplica a: ✔️ SDK do .NET Core 3.1 e versões posteriores
Nome
dotnet nuget push
– Envia um pacote ao servidor e os publica.
Sinopse
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
Descrição
O comando dotnet nuget push
envia um pacote ao servidor e os publica. O comando push usa o servidor e detalhes de credencial encontradas no arquivo de configuração do sistema NuGet ou uma cadeia de arquivos de configuração. Para obter mais informações sobre arquivos de configuração, consulte Configurando o comportamento do NuGet. A configuração de padrão do NuGet é obtida ao carregar %AppData%\NuGet\NuGet.config (Windows) ou $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) e, em seguida, carregar qualquer nuget.config ou .nuget\nuget.config da raiz da unidade e terminar no diretório atual.
O comando envia por push um pacote existente. Ele não cria um pacote. Para criar um pacote, use dotnet pack
.
Estrutura de pasta hierárquica
Esse comando pode armazenar pacotes em uma estrutura de pasta hierárquica, que é recomendada para otimizar o desempenho. Ele armazena pacotes em uma estrutura de pasta hierárquica ao publicar em uma pasta local (feed), como nuget add
faz, se já houver pelo menos um pacote no feed que esteja em uma estrutura de pasta hierárquica. Se o feed já tiver um pacote estruturado de pasta hierárquica, dotnet nuget push
ele respeitará essa estrutura. Portanto, se você quiser publicar em um feed local usando a CLI do .NET em vez da CLI do NuGet:
- Antes de publicar o primeiro pacote, vá para a pasta de pacotes globais, em %userprofile%.nuget\packages, e selecione a pasta raiz de uma ID de pacote. Pode ser qualquer pacote que não faça parte de uma estrutura, como .NET Standard ou ASP.NET.
- Copie a pasta do pacote selecionado para a pasta raiz do feed local.
- Use
dotnet nuget push
para publicar seu pacote no feed local. - Agora você pode excluir a pasta copiada anteriormente e pode usar
dotnet nuget push
livremente para publicar no feed local.
Como alternativa, use a CLI do NuGet para o primeiro pacote e, em seguida, você pode usar dotnet nuget push
para o restante. Para obter mais informações, confira Feeds locais.
Argumentos
ROOT
Especifica o caminho do arquivo para o pacote a ser enviado por push.
Opções
-d|--disable-buffering
Desabilita o buffer durante o push para um servidor HTTP(S) a fim de reduzir o uso de memória.
--force-english-output
Força a execução do aplicativo usando uma cultura invariável com base em inglês.
-?|-h|--help
Imprime uma descrição de como usar o comando.
--interactive
Permite que o comando pare e aguarde entrada ou ação do usuário. Por exemplo, para concluir a autenticação. Disponível desde o SDK do .NET Core 3.0.
-k|--api-key <API_KEY>
A chave da API para o servidor.
-n|--no-symbols
Não envia símbolos por push (mesmo se estiver presente).
--no-service-endpoint
Não acrescenta "api/v2/package" à URL de origem.
-s|--source <SOURCE>
Especifica a URL do servidor. O NuGet identifica uma fonte UNC ou pasta local e simplesmente copia o arquivo lá em vez de efetuá-lo por push usando HTTP.
Importante
Do NuGet 3.4.2 em diante, esse é um parâmetro obrigatório, a menos que o arquivo de configuração do NuGet especifique um
DefaultPushSource
valor. Para obter mais informações, consulte Configurando o comportamento do NuGet.--skip-duplicate
Ao enviar por push vários pacotes para um servidor HTTP(S), trata qualquer resposta de Conflito 409 como um aviso para que outros pushes possam continuar.
-sk|--symbol-api-key <API_KEY>
A chave da API para o servidor de símbolos.
-ss|--symbol-source <SOURCE>
Especifica a URL do servidor de símbolos.
-t|--timeout <TIMEOUT>
Especifica o tempo limite para enviar para um servidor em segundos. O padrão é 300 segundos (5 minutos). A especificação de 0 aplica o valor padrão.
Exemplos
Envie por push foo.nupkg para a fonte de push padrão especificada no arquivo de configuração do NuGet, usando uma chave de API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Envie por push foo.nupkg para o servidor NuGet oficial, especificando uma chave de API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://api.nuget.org/v3/index.json
Envia por push foo.nupkg à
https://customsource
de origem de push personalizada, especificando uma chave de API:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Envie por push foo.nupkg para a fonte de push padrão especificada no arquivo de configuração do NuGet:
dotnet nuget push foo.nupkg
Envie por push foo.symbols.nupkg para a fonte de símbolos padrão:
dotnet nuget push foo.symbols.nupkg
Envie por push foo.nupkg para a fonte de push padrão especificada no arquivo de configuração do NuGet, com um tempo limite de 360 segundos:
dotnet nuget push foo.nupkg --timeout 360
Envie por push todos os arquivos .nupkg no diretório atual para a fonte de push padrão especificada no arquivo de configuração do NuGet:
dotnet nuget push "*.nupkg"
Observação
Se esse comando não funcionar, talvez seja devido a um bug que existia em versões mais antigas do SDK (SDK do .NET Core 2.1 e versões anteriores). Para corrigir esse problema, atualize sua versão do SDK ou execute o seguinte comando em vez disso:
dotnet nuget push "**/*.nupkg"
Observação
As aspas entre aspas são necessárias para shells como bash que executam o globbing de arquivo. Para obter mais informações, confira NuGet/Home#4393.
Envie por push todos os arquivos .nupkg para a fonte de push padrão especificada no arquivo de configuração do NuGet, mesmo que uma resposta de conflito 409 seja retornada por um servidor HTTP(S):
dotnet nuget push "*.nupkg" --skip-duplicate
Envie todos os arquivos .nupkg no diretório atual para um diretório de feed local:
dotnet nuget push "*.nupkg" -s c:\mydir
Para enviar por push para o Azure Artifacts, confira a documentação por push do Azure Artifacts.