2010-07-27 164 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