Liga-te a Artefactos do Azure feeds usando NuGet.exe

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

O Artefactos do Azure ajuda-o a armazenar e gerir os seus pacotes a partir de um único feed. Pode partilhar pacotes dentro da sua equipa, entre organizações ou, para projetos públicos existentes, publicamente. Este artigo mostra-lhe como configurar o seu projeto e autenticar-se no seu feed Artefactos do Azure usando NuGet.exe.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização Azure DevOps .
- Um projeto do Azure DevOps .
- Um feed de Artefatos do Azure .
- Descarregar e instalar nuget.exe versão 4.8.0.5385 ou posterior. Recomendamos o NuGet 5.5.x ou posterior, que inclui correções importantes de bugs para cancelamentos e timeouts.

Configurar o fornecedor de credenciais do Artefactos do Azure

O Artefactos do Azure Credential Provider permite a autenticação segura dos seus feeds Artefactos do Azure. Para o utilizar com o nuget.exe, tem primeiro de o adicionar ao caminho de pesquisa de plug-ins do NuGet. Para mais detalhes, consulte Instalação e descoberta de plugins. Depois de adicionar o plugin, siga os passos de instalação do seu sistema operativo abaixo:

Use um dos seguintes métodos para instalar o Artefactos do Azure Credential Provider:

Instalação manual

  1. Descarregue a versão mais recente Microsoft.NetFx48.NuGet.CredentialProvider.zip.

  2. Extraia o arquivo zip.

  3. Copie a netfx pasta do arquivo extraído para %UserProfile%/.nuget/plugins/. A netfx pasta é necessária para nuget.exe compatibilidade.

Instale usando o script auxiliar

Em alternativa, podes usar o script helper para automatizar a instalação. Certifica-te de que tens PowerShell 5.1 ou posterior, e depois executa:

iex "& { $(irm https://aka.ms/install-artifacts-credprovider.ps1) } -AddNetfx"

Para mais informações, consulte o repositório Artefactos do Azure Credential Provider.

Configuração do projeto

Siga estes passos para configurar o seu projeto e adicionar o seu feed ao nuget.config ficheiro para que o NuGet saiba onde restaurar e publicar pacotes. O URL do feed que usa depende se o seu feed está direcionado para um projeto ou para a organização.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefactos e, em seguida, selecione o seu feed no menu suspenso.

  3. Selecione Ligar ao feede, em seguida, selecione NuGet.exe no painel de navegação esquerdo.

  4. Adiciona um ficheiro nuget.config ao teu projeto, na mesma pasta que o teu ficheiro .csproj ou .sln, e depois cola nele o excerto fornecido. O seu nuget.config ficheiro deve assemelhar-se a um dos seguintes exemplos:

    • Feed específico do projeto

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
    • Feed de âmbito organizacional:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Entre em sua coleção de DevOps do Azure e navegue até seu projeto.

  2. Selecione Artefactos e, em seguida, selecione o seu feed no menu suspenso.

  3. Selecione Ligar ao Feede, em seguida, selecione NuGet.exe no painel de navegação esquerdo.

  4. Adicione um ficheiro nuget.config ao seu projeto na mesma pasta que o seu ficheiro .csproj ou .sln e, em seguida, cole no ficheiro o excerto fornecido na secção Configuração do projeto.

Observação

O Artefactos do Azure Credential Provider requer uma versão 4.8.0.5385 NuGet ou posterior. A Artefactos do Azure recomenda o NuGet 5.5.x ou versões posteriores para a melhor compatibilidade e fiabilidade.

Inicialização do projeto antigo

Se estiveres a usar uma versão antiga do NuGet que não suporta o fluxo recomendado v3, podes ainda assim ligar-te ao teu feed usando o endpoint v2 mais antigo e um Personal Access Token (PAT). Use esta abordagem apenas quando não conseguir passar para um cliente mais recente.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefactos e, em seguida, selecione o seu feed no menu suspenso.

  3. Selecione Conectar ao feed e, em seguida, selecione NuGet.exe à esquerda.

  4. Copie o URL de origem da seção Configuração do projeto e substitua /v3/index.json por ./v2 O URL de origem atualizado deve ter a seguinte aparência:

    • Feed específico do projeto

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
    • Feed de âmbito organizacional:

      https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
      
  5. Crie um Token de Acesso Pessoal. Associe o token à organização à qual pretende aceder e, em seguida, selecione um dos seguintes âmbitos consoante as suas necessidades: Pacotes (leitura), Pacotes (leitura e escrita) ou Pacotes (leitura, escrita e gestão).

  6. Execute o seguinte comando numa janela de linha de comandos para adicionar a sua fonte de feed ao ficheiro nuget.config :

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
    
  7. Se a sua organização estiver ligada ao Microsoft Entra ID, autentique primeiro com as suas credenciais Microsoft Entra e depois adicione o seu token de acesso pessoal usando o setapikey comando:

    nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD>
    
    nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL> 
    

Autenticar utilizando princípios de serviço

Use a autenticação do principal de serviço para cenários de automação onde o início de sessão interativo não seja apropriado. Para autenticar com um feed Artefactos do Azure usando um principal de serviço, defina a variável de ambiente ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS como mostrado nos exemplos seguintes.

A variável especifica o URL do seu feed, o ID da aplicação principal de serviço (cliente) e o nome do requerente do certificado ou então o caminho para o ficheiro do certificado. Só precisas de um dos valores do certificado.

$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
    "endpointCredentials": [
        {
            "endpoint": "<FEED_URL>",
            "clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
            "clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
            "clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
        }
    ]
}
'@