Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Pipelines позволяет разработчикам публиковать пакеты в каналах Azure Artifacts внутри своей организации, в каналах других организаций и в общедоступных реестрах, таких как nuget.org. В этой статье объясняется, как публиковать пакеты NuGet на внутренние и внешние каналы с помощью классических и YAML-пайплайнов.
Необходимые компоненты
| Продукт | Требования |
|---|---|
| Azure DevOps | — организация Azure DevOps и проект. — канал Azure Artifacts . — Если вы используете автономный агент, убедитесь, что у него установлен пакет SDK для .NET Core и NuGet . - Разрешения: — Чтобы предоставить доступ ко всем конвейерам в проекте, необходимо быть членом группы администраторов проектов. — Для создания подключений к службе необходимо иметь роль администратора или создателя для подключений служб . |
Примечание.
Если вы используете Ubuntu 24.04 или более поздней версии, необходимо использовать NuGetAuthenticate задачу с .NET CLI вместо nuget.exe. Дополнительные сведения см. в поддержке новых размещённых образов Ubuntu.
Публикация пакетов NuGet в веб-канале в той же организации
Если у вас еще нет веб-канала, вы можете создать новый, в противном случае выполните следующие действия, чтобы опубликовать пакет NuGet в веб-канале в той же организации:
Войдите в Azure DevOps, а затем перейдите к проекту.
Выберите конвейеры, а затем выберите определение конвейера.
Выберите "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML для проверки подлинности и публикации пакета:
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Войдите в Azure DevOps, а затем перейдите к проекту.
Выберите конвейеры, а затем выберите определение конвейера.
Выберите "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML для проверки подлинности и публикации пакета:
steps: - task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 displayName: 'NuGet Authenticate' - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Примечание.
Чтобы публиковать пакеты в канал с использованием Azure Pipelines, убедитесь, что как идентификатору службы сборки коллекции проектов, так и идентификатору службы сборки вашего проекта присвоена роль издателя канала (участника) в настройках канала. Дополнительные сведения см. в статье "Управление разрешениями ".
Публикация пакетов NuGet в веб-канале в другой организации
Чтобы опубликовать пакеты NuGet в канале другой организации Azure DevOps, сначала необходимо создать личный маркер доступа (PAT) в целевой организации, а затем создать подключение к службе в организации, где выполняется ваш конвейер. Затем вы можете использовать подключение службы в конвейере YAML или в классическом конвейере для аутентификации и публикации пакетов.
1. Создание личного токена доступа
Войдите в организацию Azure DevOps, в которой размещен ваш целевой фид.
Перейдите в настройки пользователя>персональные токены доступа.
Выберите Новый токен, укажите описательное имя, а затем в разделе Области выберите Упаковка>Чтение и запись.
Нажмите кнопку "Создать", а затем скопируйте и сохраните PAT в безопасном месте, так как вам потребуется настроить подключение к сервису далее.
2. Создание подключения к службе
Войдите в организацию Azure DevOps, в которой будет выполняться конвейер, а затем перейдите к проекту.
Перейдите к подключениям> службы параметров проекта.
Выберите новое подключение к службе, выберите NuGet и нажмите кнопку "Далее".
Выберите внешний сервер Azure DevOps в качестве метода проверки подлинности и введите URL-адрес целевого веб-канала. Вставьте созданный ранее личный маркер доступа, укажите имя подключения к службе и проверьте разрешение на доступ ко всем конвейерам, если применимо к вашему сценарию.
Выберите Сохранить, когда вы закончите.
3. Публикация пакета
Войдите в организацию Azure DevOps, а затем перейдите к проекту.
Выберите конвейеры и выберите определение конвейера.
Выберите "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML для проверки подлинности и публикации пакета:
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите конвейеры и выберите определение конвейера.
Нажмите кнопку "Изменить", а затем добавьте следующий фрагмент кода в конвейер YAML.
- task: NuGetToolInstaller@1 # Minimum required NuGet version: 4.8.0.5385+. displayName: 'NuGet Tool Installer' - task: NuGetAuthenticate@1 # Authenticate with Azure Artifacts and other NuGet registries. inputs: nuGetServiceConnections: <SERVICE_CONNECTION_NAME> # Name of the service connection used to authenticate with feeds across organizations or public registries. - script: | nuget.exe push -Source "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" -ApiKey az $(Build.ArtifactStagingDirectory)\*.nupkg displayName: Push