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.