Восстановление пакетов NuGet с помощью Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
С помощью восстановления пакетов NuGet можно установить все зависимости проекта, не сохраняя их в системе управления версиями. Это позволяет более чистой среде разработки и меньшему размеру репозитория. Пакеты NuGet можно восстановить с помощью задачи восстановления NuGet, интерфейса командной строки NuGet или интерфейса командной строки .NET Core. В этой статье показано, как восстановить пакеты NuGet с помощью классических и YAML Pipelines.
Необходимые компоненты
- Организация Azure DevOps. Создайте организацию, если у вас еще нет.
- Проект Azure DevOps. Если у вас еще нет одного, можно создать новый проект.
- Веб-канал артефактов Azure. Создайте веб-канал , если у вас еще нет.
- Подключение веб-канал Артефактов Azure: NuGet.exe, dotnet.
- Настройте разрешения конвейера.
Восстановление пакетов NuGet из веб-канала
Перейдите к определению классического конвейера и нажмите кнопку "Изменить".
Выберите + , чтобы добавить новую задачу. Найдите NuGet и нажмите кнопку "Добавить", чтобы добавить задачу в конвейер.
Назовите задачу и выберите "Восстановить " из команды.
Выберите веб-каналы, которые я выберите здесь, и выберите свой веб-канал в раскрывающемся меню. Если вы хотите использовать собственный файл конфигурации, выберите веб-каналы в моей конфигурации NuGet.config и введите путь к файлу конфигурации NuGet.config и подключению к службе, если вы хотите пройти проверку подлинности с помощью веб-каналов за пределами организации.
Если вы хотите включить пакеты из NuGet.org, проверка "Использовать пакеты" из NuGet.org проверка box.
После завершения нажмите кнопку "Сохранить и очередь ".
Примечание.
Классическое восстановление NuGet использует задачу NuGetCommand@2 . По умолчанию эта версия использует NuGet 4.1.0. Используйте задачу установщика инструментов NuGet, если вы хотите использовать другую версию NuGet.
Восстановление пакетов NuGet локально
Поместите свою nuget.config
папку в ту же папку, что и .sln
файл.csproj
. Файл конфигурации должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!-- remove inherited connection strings -->
<clear />
<!-- add an Azure Artifacts feed -->
<add key="FabrikamFiber" value="https://pkgs.dev.azure.com/microsoftLearnModule/_packaging/FabrikamFiber/nuget/v3/index.json" />
<!-- Get packages from NuGet.org -->
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
Чтобы восстановить пакеты NuGet, выполните следующую команду в каталоге проекта:
nuget.exe restore
Восстановление пакетов NuGet из веб-канала в другой организации
Чтобы восстановить пакеты NuGet из веб-канала в другой организации Azure DevOps, необходимо использовать личный маркер доступа для проверки подлинности.
Создание личного маркера доступа
Перейдите в организацию Azure DevOps, а затем выберите параметры личных маркеров> доступа.
Создайте личный маркер доступа с помощью область упаковки (чтения) и скопируйте PAT в буфер обмена.
восстановление пакетов NuGet;
Перейдите к определению конвейера и выберите задачу восстановления NuGet. Убедитесь, что вы используете версию 2 задачи.
Выберите веб-каналы и проверку подлинности, а затем выберите каналы в моей конфигурации NuGet.config.
Выберите путь к файлу конфигурации NuGet.config .
Выберите "Создать ", чтобы добавить учетные данные для веб-каналов за пределами этой организации или коллекции.
Выберите внешний сервер Azure DevOps Server, а затем введите URL-адрес веб-канала (убедитесь, что оно соответствует тому, что в конфигурации NuGet.config), имя подключения службы и созданный ранее личный маркер доступа. Выберите Сохранить, когда вы закончите.
После завершения нажмите кнопку "Сохранить и очередь ".
Вопросы и ответы
Вопрос. Не удается восстановить мои пакеты NuGet?
Ответ. Задача восстановления NuGet может завершиться сбоем по нескольким причинам. Наиболее распространенный сценарий заключается в добавлении нового проекта, требующего целевой платформы, которая не поддерживается версией NuGet, используемой конвейером. Этот сбой обычно не происходит в локальной среде разработки, так как Visual Studio заботится об обновлении решения соответствующим образом. Обновите NuGet до последней версии.