2010-07-27 78 views
4

我试图获取TFS MSBuild中的最新变更集版本。我已经尝试了许多解决方案,并且已经引用了TFS and msbuild version number with last changeset而没有期望的结果。任何其他想法?TFS和MSBuild:如何获取最新的变更集版本

  1. 一些博客条目/例子建议使用“TF变更/最新/我的MSBuild”,但是我无法找到如何获取所需值一个MSBuild XML文件中的属性文件。

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

参见: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)"/> 

编辑:正确的代码,并添加引用链接

+0

我在显示代码时遇到问题,我会在这里尝试。 1: davewilliams459 2010-07-27 21:05:57

+0

(对不起,格式糟糕。 )“> davewilliams459 2010-07-27 21:07:00

+0

是否想帮助支持Stack Exchange上的Visual Studio ALM社区? http://bit.ly/caQ9ds – 2010-08-20 11:50:46

回答

3

如果您正在使用团队生成2010,您可以使用BuildDetail.SourceGetVersion。这只是给你变更号码。

+0

谢谢,是的,我们希望很快升级到2010年,但当然这不是一种选择。 – davewilliams459 2010-07-29 15:46:58