Подтвердить что ты не робот

Как я могу указать шаг сборки TeamCity NuGet Installer для использования как NuGet.org, так и исходного пакета TeamCity?

У меня возникли проблемы с моим шагом сборки установщика NuGet.

Мы используем как официальные пакеты NuGet.org, так и наши собственные пакеты, размещенные на сервере TeamCity NuGet. Если я оставил исходники пакетов пустыми, тогда будут найдены пакеты с nuget.org, но как только я укажу %teamcity.nuget.feed.server% в качестве источника пакета, пакеты с nuget.org не будут найдены.

Я попробовал установить Packages Sources для включения обоих, но он по-прежнему не работает для официальных пакетов nuget.org.

https://nuget.org/api/v2/
%teamcity.nuget.feed.server%

Это неправильный URL-адрес для источника пакета nuget.org? Как я могу сказать, что использовать оба источника?

Я спросил об этом на дискуссионной панели разработчиков JetBrains, но не получил никаких ответов.

4b9b3361

Ответ 1

По-видимому, шаг сборки установщика NuGet даже не нужен. Я отредактировал файл .nuget/NuGet.targets, чтобы включить оба пути, и удалил шаг сборки NuGet Installer, и теперь он работает.

При первоначальной настройке TeamCity для этого решения он не работал без шага установки NuGet, поэтому я не знаю, что еще я сделал по-другому, чтобы сделать эту работу, но, возможно, файл NuGet.targets был ключ все время.

Комментарий этого сообщения в блоге указал мне в правильном направлении.

Ответ 2

Если бы такая же проблема, достаточно смешно, мои источники Nuget были указаны как
https://www.nuget.org/api/v2/
http://nugetserver/nuget
Добавление косой черты во втором URL-адресе, чтобы сделать ее http://mynugetserver/nuget/ исправленной проблемой. Понадобился время, чтобы разобраться. Теперь мой шаг сборки Nuget-installer работает нормально.

Ответ 3

Вы можете изменить NuGet.Config в локальной папке AppData для пользователя, которому работает TeamCity, и не изменять каждый файл проекта .targets:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <!--<add key="repositoryPath" value="J:\TeamCity7\buildAgent\work\my_shared_packages_dir" />-->
  </config>
  <packageRestore>
    <add key="enabled" value="True" />
  </packageRestore>
  <packageSources>
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <add key="MMG TeamCity Nuget Server" value="http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>

NuGet.exe внутри папки .nuget в каждом проекте будет уважать установленные здесь конфигурации, а затем применять любые "переопределения", выполненные в файле .targets.

Ответ 4

Такая же проблема. Я использую TeamCity v10, требуется шаг Nuget (в моем решении нет файла .targets). Тем не менее, я использовал другой подход, чтобы добавить "дополнительный" источник пакета:

c:\BuildAgent\tools\NuGet.CommandLine.2.7.0\tools\Nuget.exe sources Add -Name TeamCity-feed -Source http://myteamcityserver/guestAuth/app/nuget/v1/FeedService.svc/

После этого я добавил шаг установщика Nuget и ничего не указывал в исходном поле пакета в TeamCity, теперь оба пакета из открытого канала nuget.org и мой внутренний канал могут быть восстановлены без проблем.