15

我想创建一个看起来像 Major.minor.Date.LastChangeSetInTFS 的内部版本号,问题是如何从 TFS 获取最后一个变更集号。有没有什么财产之类的??

4

4 回答 4

11

好的,我终于找到了解决方案。这是一项任务,它将为您提供最新的变更集编号并创建一个属性以将其插入到程序集信息内部版本号中。主要问题在于缺少 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)" />

于 2009-10-27T17:18:26.260 回答
2

根据此页面上的评论,您可以使用命令行 tf changeset /latest /i,但我无法在家中验证。

于 2009-10-27T13:38:52.333 回答
1

抱歉,我无法评论最新的答案。

您提供的表单中的 TfsVersion 任务只会为您提供$(SolutionRoot).

如果您有更新的$(SolutionRoot)\subdir内容,则提供的解决方案将不起作用,因为它将为您提供最新的$(SolutionRoot),而不是$(SolutionRoot)\subdir您想要的。

我使用 tf changeset /latest /i它,它对我来说很好用。

于 2010-06-25T09:56:14.043 回答
0

查看以下扩展项目。您将找到大约 5 种不同的方法来解决您的问题。

  • MSBuild 扩展包- 积极维护,此扩展提供超过 280 个任务
  • MSBuild 社区任务项目- 自 2007 年以来未维护,这组约 90 个任务仍然有一些独特的任务,即基于平面文件的版本任务
  • SDC 任务库- 自 2008 年 8 月以来未维护,此扩展已被吸收到 MSBuild 扩展包中。如果您在 MSBuild 扩展包中找不到某些东西,请查看这个,它包含 300 多个任务组合,它可能有您需要的东西。
于 2009-10-27T13:48:33.050 回答