Замена переменной 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$
. Версия корректно заменяется в теге версии пакета, но не на зависимости.
Я хочу использовать ту же версию пакета, которая находится в текущей сборке, поэтому они имеют одинаковый номер сборки.
Любые мысли помогут.
Ответы
Ответ 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.
![введите описание изображения здесь]()