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://customsourcepush 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.