我正在尝试在TFS MSBuild中获取最新的变更集版本。我尝试了许多解决方案,并且引用了TFS and msbuild version number with last changeset而没有达到预期的结果。还有其他想法吗?
某些博客条目/示例建议使用'tf changeset / latest / i msbuild',但是我找不到有关如何将所需值转换为MSBuild xml文件中的属性的文档。
其他示例建议使用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 :(得分:3)
如果您使用的是Team Build 2010,则可以使用BuildDetail.SourceGetVersion
。这只是给你变更号码。