Я настраиваю некоторый CI с конфигурациями сборки, которые требуют некоторых пакетов NuGet. Эти пакеты NuGet построены на том же сервере, что приятно. Я прочитал, что могу использовать ленту TeamCity NuGet для удовлетворения своих требований. Я следовал этому руководству.
Я создал фид для проекта Build
, который сгенерировал конечные точки v1
, v2
и v3
. Для индексации пакетов я выбрал первый вариант, а именно
Чтобы индексировать пакеты, опубликованные только для выбранных конфигураций сборки, добавьте в эти конфигурации сборки функцию компоновки индексатора пакетов NuGet.
как это казалось самым прямым. Функция NuGet packages indexer
применяется к двум конфигурациям, которые создают артефакты пакета NuGet. Эти артефакты создаются правильно, как показано ниже:
Если я подключаю конечную точку v3
к Visual Studio Package Sources
, например, я просто получаю запрос на аутентификацию с последующей ошибкой Unable to load the service index for source .../v3/index.json. Response status code does not indicate success: 401 ().
Если я вставлю конечную точку v3
в браузер, я получу объект json
с набором объектов со свойствами @id
, @type
и comment
. v1
и v2
в браузере показывают мне файл XML с пустой коллекцией Packages
.
Как я могу подтвердить, что мои пакеты действительно оказались в ленте, и / или я неправильно понимаю, как конечные точки используются?
Обновление : Оказывается, это было действительно недоразумение с моей стороны. В /v3/index.json перечислены действия, которые можно выполнить с фидом. Использование / v3 / query выводит список всех пакетов, размещенных в фиде.
Оставшаяся проблема - ошибка при попытке получить пакеты из фида. TeamCity выдает следующие ошибки:
C:\Program Files\dotnet\sdk\3.1.201\NuGet.targets(124,5): error : Unable to load the service index for source <host>/httpAuth/app/nuget/feed/<project>/<feed_name>/v3/index.json
C:\Program Files\dotnet\sdk\3.1.201\NuGet.targets(124,5): error : Response status code does not indicate success: 401 ().
Помимо файла решения в моем хранилище есть следующее NuGet.config
:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nugetserver" value="<host>/httpAuth/app/nuget/feed/<project>/<feed_name>/v3/index.json" />
</packageSources>
</configuration>
Требуется ли что-то еще для подключения всех точек?