如何使用 MSBuild 覆盖 TeamCity 系统变量的值?
How to override value of TeamCity System Variable Using MSBuild?
TeamCity 配置:
下面是在 TeamCity 中完成的 Build Number 格式设置
%system.BuildVersion%
其中 BuildVersion 被定义为系统参数。
MSBuildScript
<GetAssemblyIdentity
AssemblyFiles="$(PPTCompiledOutputDirPath)$(FileNameForAssembly)">
<Output TaskParameter="Assemblies" ItemName="AssemblyIdentity"/>
</GetAssemblyIdentity>
<PropertyGroup>
<Pattern>(\d+)\.(\d+)\.(\d+)\.</Pattern>
<In>%(AssemblyIdentity.Version)</In>
<OutVersion>$([System.Text.RegularExpressions.Regex]::Match($(In), $(Pattern)))</OutVersion>
</PropertyGroup>
<Message Text="$(OutVersion)" />
<Message Text="##teamcity[buildNumber '$(OutVersion)$(BuildCounter)']" />
<Message Text="##teamcity[setParameter name='BuildVersion' value='$(OutVersion)$(BuildCounter)']"/>
我想将参数 'BuildVersion' 的值更新为程序集版本和构建计数器。
我在这里遇到有关执行 Teamcity 和执行被取消的问题。
设置buildNumber的正确方法是:
<Message Importance="High" Text="##teamcity[buildNumber '$(OutVersion)$(BuildCounter)']" />
TeamCity 配置: 下面是在 TeamCity 中完成的 Build Number 格式设置 %system.BuildVersion%
其中 BuildVersion 被定义为系统参数。
MSBuildScript
<GetAssemblyIdentity
AssemblyFiles="$(PPTCompiledOutputDirPath)$(FileNameForAssembly)">
<Output TaskParameter="Assemblies" ItemName="AssemblyIdentity"/>
</GetAssemblyIdentity>
<PropertyGroup>
<Pattern>(\d+)\.(\d+)\.(\d+)\.</Pattern>
<In>%(AssemblyIdentity.Version)</In>
<OutVersion>$([System.Text.RegularExpressions.Regex]::Match($(In), $(Pattern)))</OutVersion>
</PropertyGroup>
<Message Text="$(OutVersion)" />
<Message Text="##teamcity[buildNumber '$(OutVersion)$(BuildCounter)']" />
<Message Text="##teamcity[setParameter name='BuildVersion' value='$(OutVersion)$(BuildCounter)']"/>
我想将参数 'BuildVersion' 的值更新为程序集版本和构建计数器。
我在这里遇到有关执行 Teamcity 和执行被取消的问题。
设置buildNumber的正确方法是:
<Message Importance="High" Text="##teamcity[buildNumber '$(OutVersion)$(BuildCounter)']" />