Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Este guia explica como configurar seu projeto para publicar pacotes NuGet usando a interface de linha de comando dotnet.
Pré-requisitos
| Produto | Requisitos |
|---|---|
| Azure DevOps | - Uma organização do Azure DevOps. - Um projeto do Azure DevOps. - Um feed do Azure Artifacts. - Baixe e instale o SDK .NET versão 9.0.200 ou posterior. |
Configurar o provedor de credenciais Azure Artifacts
Para autenticar com o feed, primeiro você deve instalar o provedor de credenciais Azure Artifacts. Usando o instalador de ferramentas incluído no dotnet, você pode instalar o provedor de credenciais da CLI usando o seguinte comando:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool
Se o nuget.config no nível do repositório estiver configurado para usar apenas fontes do Azure Artifacts, execute o comando de instalação fora desse diretório ou defina explicitamente nuget.org como a origem:
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json
Opcionalmente, fixe a ferramenta em uma versão principal específica (por exemplo, em imagens de contêiner em que a reprodutibilidade é importante):
dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json
Primeiro uso
Na primeira vez que você executar uma operação que exija autenticação, use uma das seguintes abordagens:
- Execute o comando com
--interactivepara quedotnetpossa solicitar que você faça login. Essa é a abordagem recomendada para a maioria dos cenários de desenvolvimento local.
Antes de executar um comando interativo, verifique se o projeto está configurado e se o feed é adicionado ao nuget.config. Para obter detalhes da instalação, consulte a configuração do projeto.
Depois que o projeto estiver configurado e conectado ao feed, navegue até o diretório do projeto e execute:
dotnet restore --interactive
Esse comando o inscreve e adquire um token de sessão. Após fazer login com sucesso, você poderá executar comandos autenticados sem --interactive enquanto o token de sessão em cache permanecer válido. Para obter mais informações, consulte Session token cache locations.
- Para cenários não interativos, como contêineres do Docker e automação personalizada, forneça credenciais por meio de variáveis environment.
Para Azure Pipelines, use a tarefa NuGetAuthenticate@1 para autenticar no feed antes de executar comandos como dotnet restore ou dotnet nuget push. Consulte Restaurar pacotes NuGet com o Azure Pipelines para obter mais detalhes.
Criar um feed
Se você já tem um feed, prossiga para o próximo passo. Caso contrário, siga as instruções abaixo para criar uma nova:
Entre no Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione Criar Feed.
Insira um nome descritivo para o feed e defina sua Visibilidade (quem pode usar o feed). Especifique o escopo do feed e, se desejar incluir pacotes de fontes públicas, marque a caixa de seleção Incluir pacotes de fontes públicas comuns .
Selecione Criar quando terminar.
Conectar-se a um feed
Antes de publicar pacotes no feed, você deve se autenticar com o Azure Artifacts. Siga as instruções abaixo para configurar seu projeto e autenticar com o feed:
Entre em sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e, em seguida, selecione dotnet na seção NuGet à esquerda.
Crie um arquivo nuget.config na mesma pasta que o arquivo csproj ou sln. Copie o seguinte snippet XML e cole-o em seu novo arquivo, substituindo os espaços reservados pelas informações relevantes:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
</packageSources>
</configuration>
Publicar pacotes em um feed na mesma organização
Execute o comando a seguir para publicar um pacote no feed. Substitua os marcadores pelos valores apropriados:
dotnet nuget push --source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --api-key <ANY_STRING> <PACKAGE_PATH>
Exemplo:
dotnet nuget push --source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --api-key AZ bin/MyPackage.5.0.2.nupkg
Nota
O api-key parâmetro é necessário ao publicar em um feed do Azure Artifacts, mas você pode usar qualquer cadeia de caracteres como seu valor.
Publicar pacotes em um feed em uma organização diferente
Para publicar seus pacotes NuGet em um feed em uma organização diferente do Azure DevOps, primeiro você deve criar um PAT (token de acesso pessoal) na organização de destino, adicionar a nova origem do pacote ao arquivo de configuração e, em seguida, executar o comando de publicação:
Navegue até a organização que hospeda seu feed de destino e crie um token de acesso pessoal (PAT) com escopo de Empacotamento>Leitura & gravação.
Substitua o marcador de posição <PERSONAL_ACCESS_TOKEN> pelo seu token de acesso pessoal e execute o comando a seguir para adicionar a fonte do seu pacote ao arquivo nuget.config. Certifique-se de que esse arquivo esteja armazenado com segurança e não seja enviado para o controle do código-fonte.
dotnet nuget add source https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json --name <SOURCE_NAME> --username <USER_NAME> --password <PERSONAL_ACCESS_TOKEN> --configfile <PATH_TO_NUGET_CONFIG_FILE>Execute o seguinte comando para publicar seu pacote:
dotnet nuget push --source <SOURCE_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>
Exemplo:
dotnet nuget add source https://pkgs.dev.azure.com/MyOrg/MyProject/_packaging/MyFeed/nuget/v3/index.json --name MySource --username MyUserName --password MyPersonalAccessToken --configfile ./nuget.config
dotnet nuget push --source MySource --api-key AZ nupkgs/mypackage.1.1.0.nupkg
Nota
Se sua organização usar um firewall ou servidor proxy, verifique se as URLs de domínio e endereços IP do Azure Artifacts são permitidas .