Публикация пакетов NuGet в NuGet.org (классическая версия или YAML)

С помощью Azure Pipelines разработчики могут упростить процесс публикации пакетов NuGet в веб-каналах и общедоступных реестрах. В этой статье описывается публикация пакетов NuGet в NuGet.org.

Необходимые компоненты

продукт Требования
Azure DevOps проект Azure DevOps.
Разрешения - :
    — Чтобы предоставить доступ ко всем конвейерам в проекте, необходимо быть членом группы администраторов проектов.
    — Для создания подключений к службе необходимо иметь роль администратора или создателя для подключений служб .
NuGet.org — учетная запись NuGet.

Создание ключа API

  1. Перейдите к NuGet.org и войдите в учетную запись.

  2. Щелкните значок имени пользователя и выберите ключи API.

  3. Нажмите кнопку "Создать", а затем укажите имя ключа. Назначьте ключу область отправки новых пакетов и версии пакета и введите * в поле "Шаблон glob", чтобы включить все пакеты.

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

  5. Выберите Копировать и сохраните ключ API в безопасном расположении.

Создание подключения службы

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

  2. Выберите значок шестеренки Параметры проекта в нижнем левом углу страницы.

  3. Выберите NuGet и нажмите кнопку "Далее".

  4. Выберите ApiKey в качестве метода проверки подлинности и задайте ДЛЯ URL-адреса веб-канала значение: .

  5. Введите ApiKey, созданное ранее в поле ApiKey, и укажите имя подключения к службе.

  6. Установите флажок Предоставить разрешение на доступ ко всем конвейерам, а затем выберите Сохранить, когда закончите.

Публикация пакетов

Заметка

Если вы используете Ubuntu 24.04 или более поздней версии, необходимо использовать задачу NuGetAuthenticate с .NET CLI вместо задачи NuGetCommand@2. Дополнительные сведения см. в разделе Поддержка новых образов Ubuntu для хостинга.

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

  2. Выберите Конвейеры, выберите определение конвейера и выберите Изменить.

  3. Добавьте следующий фрагмент кода в конвейер YAML. Замените заполнитель именем созданного ранее подключения службы:

    steps:
    - task: DotNetCoreCLI@2
      displayName: 'dotnet pack'
      inputs:
        command: pack
    - task: NuGetCommand@2
      displayName: 'NuGet push'
      inputs:
        command: push
        nuGetFeedType: external
        publishFeedCredentials: <NAME_OF_YOUR_SERVICE_CONNECTION>
    

После успешного завершения конвейера перейдите на страницу пакетов на NuGet.org, где вы найдете недавно опубликованный пакет в начале списка.

Снимок экрана с опубликованными пакетами NuGet.org.