Восстановление Nuget завершается неудачей в Azure Devops с сообщением «невозможно загрузить индекс службы для источника» - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть сборка для решения .NET, работающего в частном агенте.Решение содержит проекты как .NET Core 2.1, так и .NET Standard 2.0.

Некоторые из установленных пакетов nuget:

  • NETStandard.Library v2.0.3
  • Microsoft.AspNetCore.Mvc v2.0.0
  • Microsoft.NETCore.App v2.1.5

Сборка завершается неудачно при попытке восстановить пакеты nuget со следующей ошибкой:

"F: \ Agent01 \ w \141 \ s \ xxxxxxx.sln "(цель восстановления) (1) -> (цель восстановления) -> C: \ Program Files \ dotnet \ sdk \ 2.1.500 \ NuGet.targets (114,5): ошибка: невозможнозагрузить сервисный индекс для источника https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json. C: \ Program Files \ dotnet \ sdk \ 2.1.500 \ NuGet.targets (114,5): ошибка: код состояния ответа не указывает на успех: 401 (не авторизован).

Задача сборки:

Nuget restore build task

Это содержимое файла %appdata%\NuGet\nuget.config в агенте сборки:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <MyFeed>
      <add key="Username" value="LocalBuildAgent" />
      <add key="ClearTextPassword" value="xxxxxxxxxxx" />
    </MyFeed>
  </packageSourceCredentials>
</configuration>

Я уже проверил несколько похожих вопросов, но пока не смог найти решение своей проблемы.

Некоторые примечания:

  • Токен личного доступа НЕ устарел
  • Эта конкретная сборка успешно выполняется в других агентах сборки
  • По крайней мере 1сборка с задачей « восстановление nuget », которая была успешно выполнена с использованием этого агента (обычная задача восстановление nuget , НЕ .NET Core)
  • Попытка перезапуска агента сборки,без успеха
  • Попытка указание конкретной версии nuget перед восстановлением, без успеха
  • .NET Core SDK последняя версия в агенте сборки - 2.1.500 (несколько версийустановлено)

Чего мне не хватает?Как исправить эту проблему?Почему я не могу восстановить пакеты с помощью команды dotnet restore?

ОБНОВЛЕНИЕ:

Пакеты восстанавливаются без ошибок при использовании old Восстановление Nuget Задание выполняется следующим образом:

Build definition

ОБНОВЛЕНИЕ 2:

Я могу восстановить пакеты, используяЗадача .NET Core v1:

Screenshot - restore packages using the .NET Core task v1

Или с помощью задачи v2 с аргументом --force:

Screenshot - restore packages using --force

Ответы [ 4 ]

0 голосов
/ 03 апреля 2019

Я столкнулся с той же проблемой, но по другой причине - не предоставил PAT соответствующие флаги доступа.Область действия Упаковка (создание, чтение, обновление и удаление каналов и пакетов) требуется для PAT, раньше я только настраивал PAT, чтобы иметь область действия Build (артефакты, определения, запросы, очередь и т. Д.).build, и обновил свойства сборки), ошибочно приняв Артефакты, включая частные фиды пакетов!

Пользовательский опыт в VS (как в 2015, так и в 2017 году) не помог, хотя обе версии неоднократно отображали диалоговое окно учетных данных вместо предоставления дополнительной информации о причине (кроме 401ответ об ошибке, подсказка в слове «Несанкционированный», хотя ...).

Чтобы подвести итог шагов для использования частного фида пакета DevOps -

  • В DevOps создайте новыйPAT с областью действия Packages, как указано выше
  • В DevOps также получите URL-адрес источника пакета со страницы Connect to feed в разделе Артефакты> Пакеты (это необходимо для параметра -source для 'добавления источников nuget')
  • Добавьте источник пакета (с учетными данными) в ваш% APPDATA% \ NuGet \ NuGet.config, используя -

    nuget.exe sources add -name {your_package_feed_name} -source https://pkgs.dev.azure.com/{your_org}/_packaging/{your_feed}/nuget/v3/index.json -username PATForPackages -password {the_pat_value_you_got_from_azure_devops}
    

Примечание: добавление источников nuget будет Base-64 закодируйте PAT в настройке пароля packageSourceCredentials.Кроме того, находящийся в вашем профиле пользователя файл NuGet.config является относительно безопасным при условии, что вы сохраняете его там защищенным, недостатком является то, что это обязательное условие хоста, что является следствием того, что у nuget нет встроенной аутентификации DevOps Azure.

0 голосов
/ 14 февраля 2019

Мне пришлось изменить установщик nuget на 4.8.1, чтобы это работало после переключения URL-адреса VSTS на новый URL-адрес разработчика Azure.

enter image description here

0 голосов
/ 15 февраля 2019

Использование последней задачи «Использовать .NET Core SDK 2.1.504» работало для меня.Кажется, есть некоторые ошибочные версии .NET Core SDK 2.1.5xx.

0 голосов
/ 27 ноября 2018

Я нашел решение - добавьте следующий источник пакета в %appdata%\NuGet\nuget.config:

<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />

Полный файл выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <MyFeed>
      <add key="Username" value="LocalBuildAgent" />
      <add key="ClearTextPassword" value="xxxxxxxxxxx" />
    </MyFeed>
  </packageSourceCredentials>
</configuration>

Также отметьте Регрессия в.NET SDK 500: «установка инструмента dotnet» завершается с ошибкой 401 (неавторизовано), когда в NuGet.config # 7524 имеется личная лента.Эта проблема, по-видимому, вызвана .NET SDK 2.1.500.

Другим обходным решением может быть удаление этой версии:

Эта проблема отсутствует в .NET Core SDK 2.1.400, например, пропадает при удалении .NET Core SDK 2.1.500 и появляется снова, когда SDK 2.1.500 устанавливается снова.

...