TFS 和 msbuild 版本号以及最后的变更集
题
我想创建一个看起来像 Major.minor.Date.LastChangeSetInTFS 的内部版本号,问题是如何从 TFS 获取最后一个变更集编号。有没有什么财产之类的??
解决方案
好的,我终于找到了解决方案。这是一个任务,它将为您提供最新的变更集编号,并创建一个属性以将其插入到汇编信息版本号中。主要问题是缺少TfsLibraryLocation属性(没有它,它应该指向GAC中的库,但它没有)
<Target Name="GetVersionChangeSet">
<TfsVersion
TfsLibraryLocation="C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies"
LocalPath="$(SolutionRoot)">
<Output TaskParameter="Changeset" PropertyName="ChangesetNumber"/>
</TfsVersion>
<Message Text="TFS ChangeSetNumber: $(ChangesetNumber)" />
其他提示
根据对此页的评论,您可以使用命令行
tf changeset / latest / i
但我无法在家验证。
抱歉,我无法对最新答案发表评论。
您提供的表单中的TfsVersion任务只会在 $(SolutionRoot)
中为您提供最新的变更集编号。
如果您在 $(SolutionRoot)\ subdir
中有更新的东西,提供的解决方案将无效,因为它将为您提供 $(SolutionRoot)
中的最新信息。 ,而不是你想要的 $(SolutionRoot)\ subdir
。
我使用 tf changeset / latest / i
,它对我来说很好。
查看以下扩展项目。您会发现大约 5 种不同的方法来解决您的问题。
- MSBuild 扩展包 - 积极维护,此扩展提供超过 280 个任务
- MSBuild 社区任务项目 - 自 2007 年起不再维护,这组约 90 个任务仍然有一些独特的任务,即基于平面文件的版本任务
- SDC任务库 - 自 2008 年 8 月起不再维护,此扩展已被吸收到 MSBuild 扩展包中。如果您在 MSBuild Extension Pack 中找不到某些内容,请查看这个扩展包,它包含 300 多个任务,很可能它可以满足您的需求。
不隶属于 StackOverflow