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

Замена переменной 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>

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

Не работает. Пробовал с помощью $version$. Версия корректно заменяется в теге версии пакета, но не на зависимости.

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

Любые мысли помогут.

4b9b3361

Ответ 1

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

Чтобы исправить,

Шаги настройки → Шаги сборки → Добавить функцию сборки (кнопка)

Добавьте AssemblyInfo Patcher и дайте версии 1.0.% teamcity.build.id% и устраните проблему.

Имея зависимые библиотеки в версии с $version $, разрешили ее.

Надеюсь, это поможет.

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

введите описание изображения здесь