Как избежать использования параметра BasePath в типе запуска TeamCity NuGet Pack?

В настоящее время я использую Teamcity 7.x, и мы еще не готовы к обновлению.

Для наших внутренних пакетов NuGet мои спецификации относятся к местоположению файла nuspec (по умолчанию), но при запуске в средстве запуска пакета NuGet они должны относиться к каталогу проверки сборки.

Например, у меня должен быть nuspec, содержащий это:

<files>
  <file src="Content\**" target="content" />
</files>

но это не будет работать в TeamCity, поскольку он автоматически добавляет параметр BasePath, поэтому мне нужно изменить свой nuspec на это:

<files>
  <file src="Source\Project\Content\**" target="content" />
</files>

Как этого избежать? Я могу изменить свои спецификации, но у меня есть несколько пакетов, созданных на одном этапе сборки, и я пытаюсь использовать новый параметр -IncludeReferencedProjects, но это не удается, поскольку он выглядит не в том месте.

Параметр BasePath не нужен, так почему же по умолчанию используется каталог проверки сборки?


person Dave Van den Eynde    schedule 17.10.2013    source источник


Ответы (2)


Согласно следующей документации, шаг 2, маркер 3: http://confluence.jetbrains.com/display/TCD7/NuGet+Pack

  • Укажите базовый каталог, в котором расположены файлы, определенные в файле nuspec (каталог, относительно которого разрешены пути из nuspec, обычно это какой-то каталог bin). Если оставить это поле пустым, TeamCity будет использовать каталог проверки сборки в качестве базового каталога.

Вы можете попробовать настроить этот параметр на корень вашего проекта (теоретически то же место, что и ваш файл nuspec), а не на каталог проверки сборки (по умолчанию).

person Bo TX    schedule 10.12.2013
comment
Это не моя проблема. Моя проблема в том, что он всегда должен использовать расположение файла nuspec, что является поведением по умолчанию, если параметр -BasePath не указан. Проблема в том, что он всегда указывается у упаковщика NuGet. Теоретически я мог бы решить эту проблему, добавив шаг сборки пакета NuGet для каждого пакета, но, учитывая, что наше решение состоит из более чем 20 пакетов, это практически невозможно поддерживать. - person Dave Van den Eynde; 11.12.2013

Возможно, вы можете попробовать использовать octopack,
исходные коды: https://github.com/OctopusDeploy/OctoPack
как установить: http://octopusdeploy.com/documentation/integration/teamcity

Вам не нужно использовать развертывание осьминога. Вы можете использовать только octopack для создания пакета nuget. Этот плагин напрямую загружает ваш пакет на родной сервер teamcity nuget.

удачи!

person Ömer Faruk Aplak    schedule 10.12.2013