【发布时间】:2015-10-30 12:28:14
【问题描述】:
在我的组装版本中,我想设置前 3 位数字,第四位应该通过 Teamcity 设置。
示例: 我在我的组装中设置了 2.0.1.0。 然后我的 Teamcity 应该这样做: 2.0.1.90、2.0.1.91……
目前我有: 2.0.1.%build.counter%
但我想要的是,2.0.1 是通过我的组装版本而不是通过硬数字设置的
【问题讨论】:
标签: teamcity
在我的组装版本中,我想设置前 3 位数字,第四位应该通过 Teamcity 设置。
示例: 我在我的组装中设置了 2.0.1.0。 然后我的 Teamcity 应该这样做: 2.0.1.90、2.0.1.91……
目前我有: 2.0.1.%build.counter%
但我想要的是,2.0.1 是通过我的组装版本而不是通过硬数字设置的
【问题讨论】:
标签: teamcity
您使用的是哪个 Teamcity 版本? Teamcity 9.1 有一个新的构建功能File Content Replacer,它允许您使用正则表达式替换文件的内容。然而早期版本的 teamcity 没有内置这个,所以对于他们来说,你可以自己编写它,可能是一个 powershell 脚本或 MSBuild 目标。
MSBuild 目标 SetRevisionNumber 的示例代码
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask AssemblyFile="MSBuild.Community.Tasks.dll" TaskName="MSBuild.Community.Tasks.FileUpdate" />
<Target Name="SetRevisionNumber" Condition="$(RevisionNumber) != ''">
<Message Text="Setting Revision Number to $(RevisionNumber) in $(AssemblyVersionFile)" Importance="High" />
<FileUpdate Files="$(AssemblyVersionFile)"
Regex="\[assembly: AssemblyVersion\(.(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="[assembly: AssemblyVersion("$1.$2.$3.$(RevisionNumber)" />
</Target>
</Project>
【讨论】: