Utilize pacotes da Galeria NuGet

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

As fontes upstream dos Artefatos do Azure facilitam para os desenvolvedores extrair pacotes de registros públicos, como nuget.org e npmjs.com. Neste artigo, você aprenderá a configurar seu projeto e usar a linha de comando para consumir pacotes NuGet da Galeria NuGet.

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 o SDK .NET versão 9.0.200 ou posterior.

Configurar o fornecedor de credenciais do Artefactos do Azure

Para autenticar com o seu feed, deve primeiro instalar o Artefactos do Azure Credential Provider. Usando o instalador de ferramentas incluído no dotnet, pode instalar o fornecedor de credenciais a partir da CLI usando o seguinte comando:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

Se o seu nível de repositório nuget.config estiver configurado para usar apenas Artefactos do Azure fontes, execute o comando install de fora desse diretório, ou defina explicitamente nuget.org como fonte:

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

Opcionalmente, fixe a ferramenta a uma versão principal (por exemplo, em imagens de contentores em que a reprodutibilidade é importante):

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

Primeira utilização

Na primeira vez que realizar uma operação que requer autenticação, utilize uma das seguintes abordagens:

  1. Execute o comando com --interactive para que dotnet lhe possa pedir que inicie sessão. Esta é a abordagem recomendada para a maioria dos cenários de desenvolvimento local.

Antes de executares um comando interativo, certifica-te de que o teu projeto está configurado e que o teu feed é adicionado anuget.config. Para detalhes de configuração, veja configuração do projeto.

Depois de o seu projeto estar configurado e ligado ao seu feed, navegue até ao diretório do projeto e execute:

dotnet restore --interactive

Este comando faz login contigo e adquire um token de sessão. Depois de iniciar sessão com êxito, pode executar comandos autenticados sem --interactive enquanto o token de sessão em cache se mantiver válido. Para mais informações, veja Localização da cache de tokens de sessão.

  1. Para cenários não interativos, como containers Docker e automação personalizada, forneça credenciais através de variáveis ambiente.

Para Azure Pipelines, use a tarefa NuGetAuthenticate@1 para autenticar o seu 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 e habilitar fontes upstream

Se você ainda não criou um feed, siga as etapas abaixo para criar um novo feed e habilitar fontes upstream. Se você já tiver um feed, prossiga para a próxima etapa para adicionar a Galeria NuGet como uma fonte upstream.

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

  2. Selecione Artefatos e, em seguida, selecione Criar feed.

  3. Forneça um Nome para seu feed, selecione a opção Visibilidade para definir quem pode visualizar seus pacotes e escolha seu Escopo. O Artefactos do Azure recomenda limitar feeds a um projeto em vez de à organização inteira.

  4. Certifique-se de marcar a opção Incluir pacotes de fontes públicas comuns , pois você precisará disso para consumir pacotes de registros públicos, como nuget.org, npmjs.com etc.

  5. Selecione Criar quando terminar.

    Uma captura de tela exibindo como criar um novo feed e habilitar fontes upstream nos Artefatos do Azure.

Se você marcou a caixa de seleção Fontes upstream ao criar seu feed (como mostrado na seção anterior), a Galeria NuGet deve ter sido adicionada automaticamente às fontes upstream do feed. Se você estiver trabalhando com um feed diferente ou se esqueceu de marcar essa opção, poderá adicionar manualmente a Galeria NuGet seguindo estas etapas:

  1. Entre no Azure DevOps e navegue até seu projeto.

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

  3. Selecione o botão ícone de engrenagem para ir para as configurações do Feed.

  1. Selecione Fontes Upstream e, em seguida, selecione Adicionar Upstream.

  2. Selecione Fonte pública, selecione Galeria NuGet no menu suspenso e selecione Adicionar.

  3. Selecione Guardar no canto superior direito e, em seguida, selecione Guardar novamente para confirmar e aplicar as alterações.

Conecte-se ao seu feed

Nesta seção, você aprenderá a configurar seu projeto para autenticar com seu feed de Artefatos do Azure e salvar pacotes de fontes upstream, como a Galeria NuGet.

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

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

  3. Selecione Ligar ao feed e, em seguida, selecione NuGet.exe.

  4. Certifique-se de que instalou os pré-requisitos e, em seguida, adicione um ficheiro nuget.config na mesma pasta que o ficheiro .csproj ou .sln .

  5. Cole o trecho XML fornecido na seção Configuração do projeto em seu arquivo. Seu arquivo deve ser semelhante ao seguinte:

    • Feed com escopo 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 com escopo da organização:

      <?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 Artefatos e, em seguida, selecione seu feed no menu suspenso.

  3. Selecione Conectar ao feed e, em seguida, selecione NuGet.exe no painel de navegação esquerdo.

  4. Siga as instruções na seção Configuração do projeto para se conectar ao seu feed.

Nota

Para guardar pacotes de fontes upstream, deve ser um Feed and Upstream Reader (Colaborador) ou superior. Consulte Gerenciar permissões para obter mais detalhes.

Agora que seu projeto está configurado para autenticar com seu feed de Artefatos do Azure, você pode continuar a instalar pacotes da Galeria NuGet upstream. Neste exemplo, você instalará o MCP C# SDK para que o Model Context Protocol para aplicativos .NET interajam com clientes e servidores MCP:

  1. Navegue até a Galeria NuGet em https://www.nuget.org/.

  2. Procure o ModelContextProtocol e selecione-o para abrir a página de detalhes.

  3. Selecione a guia CLI do .NET e copie o comando. Neste exemplo, o comando é:

    dotnet add package ModelContextProtocol --version 0.3.0-preview.4
    
  4. Abra uma janela de prompt de comando, navegue até o diretório do projeto, cole o comando e pressione Enter para instalar o pacote.

Uma vez instalado, uma cópia do pacote será salva automaticamente no seu feed, garantindo a disponibilidade se a NuGet Gallery estiver inativa e protegendo seu fluxo de trabalho de outros pacotes corrompidos ou mal-intencionados do registro público.

Nota

Para salvar pacotes de upstreams, você deve ter a função Feed e Upstream Reader (Colaborador) ou superior. Consulte Funções e permissões de feed para obter mais detalhes.

Ver pacotes guardados

  1. Entre no Azure DevOps e navegue até seu projeto.

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

  3. Selecione a fonte da Galeria NuGet no menu suspenso para filtrar pacotes desse upstream.

  4. Os pacotes ModelContextProtocol , instalados na etapa anterior, agora estão disponíveis em nosso feed. Artefactos do Azure salvou automaticamente uma cópia no seu feed.

    Uma captura de tela exibindo o pacote MCP salvo no feed.