【发布时间】:2009-07-08 23:16:31
【问题描述】:
我有一个在 Team Foundation build 上运行的 msbuild 脚本。构建中的项目之一是 clickOnce 应用程序。到目前为止,我已经弄清楚了如何让脚本将项目发布到正确的位置,但我无法设置 click once 应用程序版本。
我使用来自 msbuildcommunitytasks 的 TFSVersion 任务设置版本,这似乎工作正常,我可以看到我的版本号已更新。问题似乎是当我们进入 CompileConfiguration and publish 部分时,这个版本号被重置回初始值。如何让这个值传播?
当我到达 BeforeCompile 时,Revision 与我的变更集匹配,但当我到达 BeforeCompileConfiguration 时,Revision 又回到 0。
以下是脚本亮点:
<PropertyGroup>
<CustomizablePublishDir>true</CustomizablePublishDir>
<SkipLabel>true</SkipLabel>
<!-- Version Settings -->
<Major>2</Major>
<Minor>12</Minor>
<Build>0</Build>
<Revision>0</Revision>
<GetDependsOn>
$(GetDependsOn);
Version
</GetDependsOn>
</PropertyGroup>
<ItemGroup>
<SolutionToBuild Include="$(BuildProjectFolderPath)/../../AutoBuildTest/AutoBuildTest.sln" />
<SolutionToPublish Include="@(SolutionToBuild)" >
<Properties>
PublishDir=\\DeployServer\Deploy\AutoBuildTest\;
MinimumRequiredVersion=$(Major).$(Minor).0.0;
ApplicationVersion=$(Major).$(Minor).$(Build).$(Revision)
</Properties>
</SolutionToPublish>
</ItemGroup>
<Target Name="Version">
<Message Importance="high" Text="Updating Version: $(Major).$(Minor).$(Build).$(Revision)"/>
<TfsVersion LocalPath="$(SolutionRoot)">
<Output TaskParameter="Changeset" PropertyName="Revision"/>
</TfsVersion>
<Time Format="ddMM">
<Output TaskParameter="FormattedTime" PropertyName="Build" />
</Time>
<Message Importance="high" Text="New Version: $(Major).$(Minor).$(Build).$(Revision)"/>
</Target>
【问题讨论】: