dotnet nuget push
Este artigo aplica-se a: ✔️ SDK .NET Core 3.1 e versões posteriores
Name
dotnet nuget push
- Envia um pacote para o servidor e publica-o.
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
Description
O dotnet nuget push
comando envia um pacote para o servidor e publica-o. O comando push utiliza os detalhes do servidor e das credenciais encontrados no ficheiro de configuração nuGet do sistema ou na cadeia de ficheiros de configuração. Para obter mais informações sobre ficheiros de configuração, veja Configurar o Comportamento do NuGet. A configuração predefinida do NuGet é obtida ao carregar %AppData%\NuGet\NuGet.config (Windows) ou $HOME/.nuget/NuGet/NuGet.Config (Linux/macOS) e, em seguida, ao carregar qualquer nuget.config ou .nuget\nuget.config a partir da raiz da unidade e terminando no diretório atual.
O comando emite um pacote existente. Não cria um pacote. Para criar um pacote, utilize dotnet pack
.
Estrutura de pastas hierárquica
Este comando pode armazenar pacotes numa estrutura de pastas hierárquica, que é recomendada para otimizar o desempenho. Armazena pacotes numa estrutura de pastas hierárquica ao publicar numa pasta local (feed), tal como nuget add
acontece, se já existir pelo menos um pacote no feed que esteja numa estrutura de pastas hierárquica. Se o feed já tiver um pacote estruturado de pastas hierárquicas, dotnet nuget push
respeita essa estrutura. Por isso, se quiser publicar num feed local com a CLI do .NET em vez da CLI do NuGet:
- Antes de publicar o primeiro pacote, aceda à pasta de pacotes globais, em %userprofile%.nuget\packages e selecione a pasta raiz de um ID de pacote. Pode ser qualquer pacote que não faça parte de uma arquitetura, como o padrão .NET ou ASP.NET.
- Copie a pasta do pacote selecionada para a pasta raiz do feed local.
- Utilize
dotnet nuget push
para publicar o seu pacote no feed local. - Agora, pode eliminar a pasta que copiou anteriormente e pode utilizar
dotnet nuget push
livremente para publicar no seu feed local.
Em alternativa, utilize a CLI do NuGet para o primeiro pacote e, em seguida, pode utilizar dotnet nuget push
para o resto. Para obter mais informações, veja Feeds locais.
Argumentos
ROOT
Especifica o caminho do ficheiro para o pacote a enviar.
Opções
-d|--disable-buffering
Desativa a memória intermédia ao enviar para um servidor HTTP(S) para reduzir a utilização da memória.
--force-english-output
Força a aplicação a ser executada com uma cultura invariante baseada em inglês.
-?|-h|--help
Imprime uma descrição de como utilizar o comando .
--interactive
Permite que o comando pare e aguarde pela entrada ou ação do utilizador. Por exemplo, para concluir a autenticação. Disponível desde o SDK .NET Core 3.0.
-k|--api-key <API_KEY>
A chave de API para o servidor.
-n|--no-symbols
Não emite símbolos (mesmo que estejam presentes).
--no-service-endpoint
Não acrescenta "api/v2/package" ao URL de origem.
-s|--source <SOURCE>
Especifica o URL do servidor. O NuGet identifica uma origem de pastas unc ou local e simplesmente copia o ficheiro para lá em vez de o emitir através de HTTP.
Importante
A partir do NuGet 3.4.2, este é um parâmetro obrigatório, a menos que o ficheiro de configuração NuGet especifique um
DefaultPushSource
valor. Para obter mais informações, veja Configurar o comportamento do NuGet.--skip-duplicate
Ao emitir vários pacotes para um servidor HTTP(S), trata qualquer resposta 409 Conflito como um aviso para que outros pushes possam continuar.
-sk|--symbol-api-key <API_KEY>
A chave de API para o servidor de símbolos.
-ss|--symbol-source <SOURCE>
Especifica o URL do servidor de símbolos.
-t|--timeout <TIMEOUT>
Especifica o tempo limite para enviar para um servidor em segundos. A predefinição é 300 segundos (5 minutos). Especificar 0 aplica o valor predefinido.
Exemplos
Emita foo.nupkg para a origem push predefinida especificada no ficheiro de configuração NuGet, com uma chave de API:
dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
Envie 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
Envie foo.nupkg para a origem
https://customsource
push personalizada, especificando uma chave de API:dotnet nuget push foo.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -s https://customsource/
Emita foo.nupkg para a origem push predefinida especificada no ficheiro de configuração NuGet:
dotnet nuget push foo.nupkg
Envie foo.symbols.nupkg para a origem de símbolos predefinida:
dotnet nuget push foo.symbols.nupkg
Emita foo.nupkg para a origem push predefinida especificada no ficheiro de configuração NuGet, com um tempo limite de 360 segundos:
dotnet nuget push foo.nupkg --timeout 360
Emita todos os ficheiros .nupkg no diretório atual para a origem push predefinida especificada no ficheiro de configuração NuGet:
dotnet nuget push "*.nupkg"
Nota
Se este comando não funcionar, poderá dever-se a um erro que existia em versões mais antigas do SDK (SDK .NET Core 2.1 e versões anteriores). Para corrigir esta situação, atualize a versão do SDK ou execute o seguinte comando:
dotnet nuget push "**/*.nupkg"
Nota
As aspas entre aspas são necessárias para shells como bash que executam a regressão de ficheiros. Para obter mais informações, consulte NuGet/Home#4393.
Emita todos os ficheiros .nupkg para a origem push predefinida especificada no ficheiro de configuração NuGet, mesmo que uma resposta 409 Conflito seja devolvida por um servidor HTTP(S):
dotnet nuget push "*.nupkg" --skip-duplicate
Emita todos os ficheiros .nupkg no diretório atual para um diretório de feed local:
dotnet nuget push "*.nupkg" -s c:\mydir
Para enviar para os Artefactos do Azure, veja a documentação push dos Artefactos do Azure.