TeamCity Nuget install build шаг не работает с несколькими источниками, один из них частный канал NuGet TC
Я получаю следующую ошибку в шаге сборки установки NuGet при установке источников на сервер NuGet TeamCity:
Step 1/4: NuGet install (NuGet Installer) (3s)
[15:11:19][Step 1/4] scan: Searching for nuget.config files
[15:11:19][Step 1/4] install: Installing NuGet packages for packages.config (3s)
[15:11:19][install] NuGet command: C:TeamCitybuildAgenttoolsNuGet.CommandLine.2.2.0.nupkgtoolsNuGet.exe install C:TeamCitybuildAgentworka4b9de5be22a981packages.config -OutputDirectory C:TeamCitybuildAgentworka4b9de5be22a981packages -Source http://localhost:9090/guestAuth/app/nuget/v1/FeedService.svc
[15:11:19][install] Starting: C:TeamCitybuildAgenttempagentTmpcustom_script96367186180319830.cmd
[15:11:19][install] in directory: C:TeamCitybuildAgentworka4b9de5be22a981
[15:11:22][install] The remote server returned an error: (404) Not Found.
[15:11:22][install] Process exited with code 1
[15:11:22][Step 1/4] Step NuGet install (NuGet Installer) failed
если я оставлю поле sources пустым, он найдет пакеты NuGet из ленты по умолчанию (лента сообщества NuGet), но не те, которые построены и упакованы локально и размещены в ленте NuGet TC.
Как вы используете канал по умолчанию и внутренний канал NuGet TC в шаге сборки установщика NuGet?
3 ответов
вы можете указать пользовательские каналы только для решения через .
ключевым моментом является предоставление учетных данных раздела packageSourceCredentials
такой:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
</packageSources>
<activePackageSource>
<add key="Local" value="http://localhost:9090/httpAuth/app/nuget/v1/FeedService.svc" />
</activePackageSource>
<packageSourceCredentials>
<Local>
<Username>login</Username>
<Password>pa$$w0rd</Password>
</Local>
</packageSourceCredentials>
</configuration>
этой config
файл должен быть рядом с sln
файл в репозитории.
Это известная проблема для TeamCity. Обходной путь предлагает добавить источник пакета через клиент командной строки, а затем обновить эти источники с учетными данными авторизации:
nuget sources add -name [name] -source [feedUrl]
nuget sources update -Name [name] -User [username] -pass [password]
насколько я понимаю, Nuget будет кэшировать эти учетные данные для будущих запросов. Я не знаю, как часто этот кэш очищается; вам может потребоваться запустить это nget sources update
прямо перед началом сборки убедитесь, что кэш согласован.
мы реализовали аутентифицированную поддержку ленты в плагине TeamCity. Пожалуйста, следуйте комментариям к вопросу http://youtrack.jetbrains.com/issue/TW-20764