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 pastas hierárquica
Esse comando pode armazenar pacotes em uma estrutura de pastas hierárquica, o que é recomendado para otimizar o desempenho. Ele armazena os pacotes em uma estrutura de pastas hierárquica ao publicar em uma pasta local (feed), assim como nuget add
, se já existe pelo menos um pacote no feed que esteja em uma estrutura de pastas hierárquica. Se o feed já tiver uma estrutura de pastas hierárquica para os pacotes, dotnet nuget push
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, acesse 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 de pacote selecionada para a pasta raiz do feed local.
- Use
dotnet nuget push
para publicar o 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ê poderá 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 vários pacotes por push 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.