Замена переменных Teamcity в файле nuspec

Это мой файл nuspec, чтобы получить пакет, созданный из teamcity. Версия фактически устанавливается переменной teamcity.

<?xml version="1.0"?>
<package >
  <metadata>
    <id>Company.Name</id>
    <version>$version$</version>
    <title>Title</title>
    <authors>My Name</authors>
    <owners>We are the owners</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Support</description>
    <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
    <copyright>Copyright 2013</copyright>
    <tags>Core</tags>
    <dependencies>
        <dependency id="Core.Assembly" version="[1.0.$teamcity.build.id$]" />   
    </dependencies>
  </metadata>
</package>

как заменить версию текущим номером ID сборки teamcity? Пробовал с обоими $teamcity.build.id$ и %teamcity.build.id%

это не работа. Я пробовал с $version$ как хорошо. Версия правильно заменяется в теге версии пакета, но не в зависимости.

Я хочу использовать ту же версию пакет, который находится в текущей сборке, поэтому они имеют одинаковый номер сборки.

4 ответов


разрешено с помощью AssemblyInfo patcher из функций сборки Teamcity.

исправить,

Шаги Настройки - > Шаги Сборки - > Добавить Функцию Сборки (Кнопка)

добавить AssemblyInfo Patcher и дайте версию 1.0.%teamcity.строить.id% и это решило проблему.

наличие зависимых библиотек в версии с $version$ разрешило его.

надеюсь, что это помогает.


вам не нужно заменять его через переменные TeamCity. Используйте переключатель-version, что-то вроде:

nuget.exe pack <nuspec> -version %teamcity.build.id%

таким образом, версия nuspec будет переопределена во время выполнения.


Я решил это, просто поместив [$version$] в мою зависимость.


в TeamCity 9.1 вы можете переопределить номер версии на шаге сборки "NuGet Pack".

enter image description here