- 根据MachineName创建一个属性。
- 使用该属性在 构建之前更新AssemblyInfo.cs文件。
我有下面的“SubVersionRevision”,但只使用一种语法来获取TFS版本(从你在原来的职位有链接)........
的症结该解决方案是:设置和使用 “MyCustomProperty001”
<Choose>
<When Condition=" '$(Computername)'=='MyDevMachine' ">
<PropertyGroup>
<MyCustomProperty001>0</MyCustomProperty001>
</PropertyGroup>
</When>
<When Condition=" '$(Computername)'=='MyQaMachine' ">
<PropertyGroup>
<MyCustomProperty001>1</MyCustomProperty001>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<MyCustomProperty001>9</MyCustomProperty001>
</PropertyGroup>
</Otherwise>
</Choose>
<ItemGroup>
<AssemblyInfoFiles Include="$(ProjectDir)\**\*AssemblyInfo.cs" />
</ItemGroup>
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(SVNToolPath)">
<Output TaskParameter="Revision" PropertyName="MySubVersionRevision" />
</SvnVersion>
<FileUpdate Files="@(AssemblyInfoFiles)"
Regex="AssemblyFileVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"
ReplacementText="AssemblyFileVersion("$1.$2.$(MyCustomProperty001).$(SubVersionRevision)" />
为什么在生产构建服务器之外的任何构建上设置版本号?你为什么在两个不同的盒子上建造?开发我得到,但为什么你有一个“质量保证CI服务器”和生产构建盒? –
我只是用它作为一个复杂的例子。因为这不是问题的关键,所以我不会评论这些。但要直接回答您,我们有CI,但我们的生产版本是手动完成的,因为需要一些额外的步骤,我们目前没有自动化。然而这在很大程度上是不相关的。 – Ray