Вопрос по teamcity, nuget-server, nuget – Как мне указать этапу сборки установщика NuGet TeamCity для использования как источника NuGet.org, так и источника пакетов, предоставленных TeamCity?

17

У меня возникли проблемы с этапом сборки NuGet Installer.

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

Я попытался установить источники пакетов, чтобы включить оба, но это все еще неРаботаю с официальными пакетами nuget.org.

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

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

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

Ваш Ответ

4   ответа
2

NuGet.Config вДанные приложения локальная папка для пользователя, под которым работает TeamCity, а не для изменения каждого проекта 's .targets file:

<!--?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">
  </add></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">
  </add></add></packagesources>
  <activepackagesource>
    <add key="All" value="(Aggregate source)">
  </add></activepackagesource>
</configuration>

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

Вы можете сделать то же самое, используя "Источники NuGet добавляют команда на сервере во время работы от имени этого пользователя. Johann Strydom
8

.nuget/NuGet.targets файл для включения обоих путей и удаления шага сборки установщика NuGet, и теперь он работает.

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

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

Да, это то, что я должен был сделать тоже. Вот'Вот пример: absynce
У меня нетЯ не пытался настроить частный канал, поэтому я нене знаю, будет ли это работать для этого сценария. CoderDennis
Я верю этому'Это правда, что вам не нужен шаг установщика NuGet, ЕСЛИ вам нужно только раскрыть текущие версии пакетов, установленные в проектах. Если вы хотите сначала обновить эти пакеты, указанные в packages.config, вам нужно сначала запустить шаг установщика NuGet перед сборкой, чтобы получать обновления, основанные на настройках шага установщика Nuget для обновления. В нашем файле nuget.targets я добавил наш собственный внутренний сервер nuget, чтобы текущие пакеты были разобраны, отлично работает, но это не так.Мы не получим обновления, поэтому шаг установки Nuget. Звучит разумно или вне базы? slimflem
Работает ли этот обходной путь с TC 'личный канал? Я получаю сообщение об ошибке на этапе msbuild о том, что он не может запрашивать учетные данные в неинтерактивном сеансе. Я пытаюсь найти решение с помощью частного канала, может быть, вы можете помочь? mare
12

как ни странно, мои источники Nuget были указаны как

https://www.nuget.org/api/v2/

http://nugetserver/nuget

Добавление косой черты на второй URL, чтобы сделать егоhttp://mynugetserver/nuget/ исправил проблему. Мне понадобилось время, чтобы понять. Теперь мой шаг сборки Nuget-installer работает нормально.

0

необходим шаг 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 и мой внутренний канал можно восстановить без проблем.

Похожие вопросы