Опубликовать свой первый пакет в канале Azure Artifacts

Артефакты Azure позволяют разработчикам эффективно управлять всеми их зависимостями с одного фида. Ленты в Azure Artifacts служат репозиториями на уровне организации для хранения, управления и предоставления общего доступа к пакетам внутри команды, между организациями или, для существующих общедоступных проектов, публично через Интернет. Azure Artifacts поддерживает широкий спектр типов пакетов, включая NuGet, npm, пакеты Python, Maven, Cargo и универсальные пакеты.

В этой статье показано, как опубликовать свой первый пакет NuGet в канале Azure Artifacts. При необходимости вы можете следовать инструкциям по использованию GitHub Copilot, чтобы настроить проект и подготовить пакет для публикации.

Предварительные требования

Продукт Требования
Azure DevOps — Организация Azure DevOps.
— проект Azure DevOps .
— Скачайте и установите пакет SDK .NET версии 9.0.200 или более поздней версии.
GitHub Copilot (необязательно) - Настройте GitHub Copilot и Visual Studio Code. Бесплатная пробная версия GitHub Copilot доступна на 30 дней, если вы еще не зарегистрировались.

Создайте ленту

Если у вас уже есть веб-канал, этот раздел можно пропустить. В противном случае выполните приведенные ниже действия, чтобы создать новый веб-канал в Azure Artifacts:

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, затем выберите Создать ленту.

  3. Укажите описательное имя для веб-канала и задайте его видимость , чтобы определить, кто может просматривать пакеты в веб-канале. Определите область веб-канала и установите флажок "Вышестоящий источник ", если требуется включить пакеты из общедоступных источников.

  4. После завершения работы выберите Создать.

    Снимок экрана, показывающий, как создать новый канал в Azure DevOps Services.

  1. Войдите в коллекцию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, затем выберите Создать ленту.

  3. Укажите описательное имя для веб-канала и задайте его видимость , чтобы определить, кто может просматривать пакеты в веб-канале. Определите область веб-канала и установите флажок "Вышестоящий источник ", если требуется включить пакеты из общедоступных источников.

  1. После завершения работы выберите Создать.

    Снимок экрана, показывающий, как создать новый канал в Azure DevOps Server 2022.

Подготовьте пакет

В этом примере вы используете образец библиотеки классов .NET Core и настраиваете метаданные пакета перед сборкой проекта и созданием пакета NuGet, готового к публикации в вашем канале. Если у вас еще нет проекта, следуйте инструкциям в этом руководстве по созданию библиотеки классов .NET с помощью Visual Studio Code.

  1. Откройте проект в Visual Studio Code и выберите файл csproj . Добавьте метаданные вашего пакета внутри тега <PropertyGroup>. Файл должен выглядеть следующим образом:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net8.0</TargetFramework>
        <RootNamespace>demo_class_library</RootNamespace>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    
        <PackageId>YOUR_PACKAGE_NAME</PackageId>
        <Version>YOUR_PACKAGE_VERSION</Version>
        <Authors>YOUR_NAME</Authors>
        <Company>YOUR_COMPANY</Company>
    
      </PropertyGroup>
    
    </Project>
    
  2. Выполните следующую команду в каталоге проекта, чтобы создать проект и создать пакет nupkg . Пакет будет находиться в папке bin\release .

    dotnet pack
    

Настройка поставщика учетных данных Azure Artifacts

Чтобы выполнить аутентификацию в вашем канале, необходимо сначала установить поставщик учетных данных Azure Artifacts. С помощью установщика инструментов, включенного в dotnet, можно установить поставщик учетных данных из интерфейса командной строки с помощью следующей команды:

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

Если на уровне репозитория nuget.config настроено использование только Azure Artifacts источников, выполните команду установки за пределами этого каталога или явно задайте nuget.org в качестве источника:

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

При необходимости закрепите инструмент на основной версии (например, в образах контейнеров, где важна воспроизводимость):

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

Первое использование

При первом выполнении операции, требующей проверки подлинности, используйте один из следующих подходов:

  1. Выполните команду с --interactive, чтобы dotnet мог предложить вам войти в систему. Это рекомендуемый подход для большинства локальных сценариев разработки.

Перед выполнением интерактивной команды убедитесь, что проект настроен и веб-канал добавляется в nuget.config. Сведения о настройке см. в разделе "Настройка проекта".

После настройки и подключения проекта к веб-каналу перейдите в каталог проекта и выполните следующую команду:

dotnet restore --interactive

Эта команда выполняет вход в систему и получает токен сеанса. После успешного входа вы можете выполнять команды, требующие проверки подлинности, без --interactive, пока кэшированный токен сеанса остаётся действительным. Дополнительные сведения см. в разделе Расположение кэша токенов сеанса.

  1. Для неинтерактивных сценариев, таких как контейнеры Docker и настраиваемая автоматизация, предоставьте учетные данные с помощью переменных environment.

Для Azure Pipelines используйте задачу NuGetAuthenticate@1 для аутентификации в вашем канале перед выполнением таких команд, как dotnet restore или dotnet nuget push. Дополнительные сведения см. в статье Восстановление пакетов NuGet с помощью Azure Pipelines.

Подключение к веб-каналу

Выполните следующие действия, чтобы настроить свой проект и подключиться к каналу Azure Artifacts. Убедитесь, что вы установили поставщик учетных данных Azure Artifacts и последнюю версию NuGet, как описано в предварительных требованиях.

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, а затем выберите свой канал из раскрывающегося меню.

  3. Выберите Подключиться к каналу, а затем выберите dotnet в разделе NuGet.

  4. Следуйте инструкциям в настройке проекта, чтобы настроить файл nuget.config. Структура файла должна выглядеть следующим образом:

    • Веб-канал с областью действия проекта:

      <?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>
      
    • Лента новостей с охватом организации:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Войдите в коллекцию Azure DevOps и перейдите к проекту.

  2. Выберите Артефакты, и затем выберите вашу ленту в раскрывающемся меню.

  3. Выберите Подключиться к каналу и выберите dotnet на панели навигации слева.

  4. Следуйте инструкциям в разделе "Настройка проекта ", чтобы настроить файл nuget.config .

    Снимок экрана, показывающий, как подключиться к каналу в Azure DevOps Server версий 2020 и 2022.

Опубликуйте ваш пакет

Выполните следующую команду из каталога проекта, чтобы опубликовать пакет в веб-канале Azure Artifacts. Этот --api-key параметр является обязательным, но при публикации в Azure Artifacts можно использовать любое строковое значение.

dotnet nuget push --source <FEED_NAME> --api-key <ANY_STRING> <PACKAGE_PATH>

Следующие шаги