Используйте лицензионные пакеты NuGet в Azure DevOps - PullRequest
0 голосов
/ 12 марта 2020

Я оплатил лицензионные пакеты NuGet, полученные из частного источника NuGet. Он запрашивает имя пользователя и пароль при попытке поиска любых пакетов в Visual Studio из этого источника. Приложение (Xamarin Forms) прекрасно работает с этими лицензионными пакетами.

Теперь Azure DevOps, с другой стороны, не работает, поскольку не может восстановить слепки из nuget.org.

После исследования попробовал 2 варианта:

Вариант 1. Использование «Подключения к службам» в DevOps для подключения к этому источнику с учетными данными, как в Visual Studio, и восстановление NuGet для выбора этого подключения к Службе. При этом создается временный файл nuget.config с содержанием full : <configuration/> и задаче не удается найти отсутствующие NuGets.

Вариант 2: использовать артефакты и pu sh вручную с моей локальной машины. Я выдвинул файлы, на которые ссылается проект, из их местоположения, но к описанию их артефакта в конце добавлена ​​«Пробная версия». Сборка все еще терпит неудачу с этой ошибкой:

##[error]The NuGet command failed with exit code(1) and error(NU1101: Unable to find package Infragistics.XF.DV. No packages exist with this id in source(s): 94785e32-5a7b-4923-93b0-abe71c3c1f4c

Я предполагаю, что это терпит неудачу в обоих случаях, потому что файл temp nuget.config пуст. После варианта 2 файл конфигурации удаляется, поэтому я не вижу, что на самом деле внутри.

Также обратите внимание, что этот источник работает крайне медленно при просмотре с помощью Visual Studio.

Пожалуйста, посоветуйте, как я мог получить приватные пакеты в DevOps?

РЕДАКТИРОВАТЬ Ответ: Задача восстановления Nuget, путь nuget.config была пустой, так как я ожидал, что будет автоматически сгенерирован новый пакет с содержимым ответа. Я добавил Nuget.config в исходный код проекта с двумя фидами, и он работал правильно.

Кроме того, вы можете найти глобальный Nuget.config вашей визуальной студии по адресу: %AppData%\NuGet.

1 Ответ

2 голосов
/ 13 марта 2020

Посоветуйте, пожалуйста, как я могу получить частные пакеты в Devops?

Предполагается, что пакеты вашего проекта нужны из двух каналов: publi c nuget.org и другой private feed:

Для задачи восстановления nuget, если мы выберем Feeds in my Nuget.config в feeds to use, мы можем настроить Credentials for feeds outside this organization/collection там. Это то, что нам нужно для частного фида.

(Если вы используете конвейер yaml, соответствующие входные данные будут feedsToUse, nugetConfigPath и externalFeedCredentials)

Выполните следующие действия:

1.Создайте простой Nuget.Config файл в azure devops репозиториях (в той же ветке, что и ваше решение):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="PrivateFeed" value="Url of Your Feed, end with index.json" />
  </packageSources>
</configuration>

Скопируйте содержимое выше в Nuget.Config файл и сохраните изменения. (Или вы можете получить локальный Nuget.Config , используемый Visual Studio, и добавить его в систему контроля версий)

Примечание : необходимо ввести URL-адрес канала nuget.org и ваш личный канал в Nuget.Config файле.

2.Настройте путь к файлу Nuget.Config в ваших azure репозиториях devops в Path to Nuget.config.

3.Создайте новую службу подключение для частного канала, если у вас его нет:

enter image description here

4. Выберите basic Authentication, введите имя пользователя и пароль и дайте служебному подключению имя, затем сохраните.

enter image description here

Теперь служба Devops Azure может получить доступ к вашей личной ленте при восстановлении пакетов nuget для вашего проекта. Надеюсь, это поможет:)

...