TFS和MSBuild:如何获取最新的变更集版本

时间:2010-07-27 21:00:31

标签: tfs msbuild tfs2008

我正在尝试在TFS MSBuild中获取最新的变更集版本。我尝试了许多解决方案,并且引用了TFS and msbuild version number with last changeset而没有达到预期的结果。还有其他想法吗?

  1. 某些博客条目/示例建议使用'tf changeset / latest / i msbuild',但是我找不到有关如何将所需值转换为MSBuild xml文件中的属性的文档。

  2. 其他示例建议使用msbuild扩展包,但文档不完整,下面的“changesets”属性显示为空。

  3. 请参阅:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/3fd46d76-2544-4818-b504-0fa2fc1e5c6a

        <MSBuild.ExtensionPack.Tfs.TeamBuild TaskAction="RelatedChangesets" TeamFoundationServerUrl="$(TeamFoundationServerUrl)" TeamProject="$(TeamProject)" BuildUri="$(BuildUri)" BuildDefinitionName="$(BuildDefinitionName)">
    
       <Output ItemName="changesets" TaskParameter="RelatedItems"/>
      </MSBuild.ExtensionPack.Tfs.TeamBuild>
      <Message Text="ID = %(Changesets.Identity), Checked In By = %(Changesets.CheckedInBy), URI = %(Changesets.ChangesetUri), Comment = %(Changesets.Comment)"/>
    

    此产品: 任务“消息”“ID =,签入者=,URI =,评论=”

    有人建议我在上面的teambuild任务之后使用以下内容,但是由于'changesets'属性为空,我收到错误:

    请参阅:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/9ac51ffe-137f-4d55-87e1-6fbbc401aab1

        <!-- Get the last item -->
      <MSBuild.ExtensionPack.Framework.MsBuildHelper TaskAction="GetLastItem" InputItems1="@(changesets)">
       <Output TaskParameter="OutputItems" ItemName="LastItem"/>
      </MSBuild.ExtensionPack.Framework.MsBuildHelper>
      <Message Text="Last Item: %(LastItem.Identity)"/>
    

    编辑:更正代码并添加参考链接

1 个答案:

答案 0 :(得分:3)

如果您使用的是Team Build 2010,则可以使用BuildDetail.SourceGetVersion。这只是给你变更号码。