【问题标题】:Capture msbuild tf.exe changeset /latest捕获 msbuild tf.exe 变更集 /latest
【发布时间】:2016-08-17 03:24:55
【问题描述】:

在 MSBuild 文件中,我想从以下命令的输出中提取 changeset 数字为 $(parameter) 值;

<Exec Command="c:\path\tf.exe changeset /latest /i" />

在我的构建脚本中,我可以在结果的第一行看到 Changeset 编号:

变更集:7539
用户:John Doe 日期:2015年9月23日17:03:19

评论:
一些签到评论

项目: [[这里的项目列表]]

工作项目: [[此处链接的工作项列表]]

我觉得我很接近,想要最简单的解决方案。如果有更好的选择,我可以使用 MSBuild.ExtensionPack 或 MSBuild.Community 任务。

【问题讨论】:

  • 第二个链接:google.com/…
  • @granadaCoder 这些链接不显示如何提取变更集值

标签: tfs msbuild tfsbuild changeset


【解决方案1】:

要仅获取变更集编号,请尝试以下步骤:(代码引用自link):

  1. 在机器上下载并安装MSBuildExtensionPack
  2. 将以下代码添加到 .csproj 文件(假设您正在使用 C# 项目)。请注意:您需要为 AssemblyFile 属性更改您机器上安装 MSBuild.ExtensionPack.TaskFactory.PowerShell.dll 的文件夹路径。

  <UsingTask TaskFactory="PowershellTaskFactory" TaskName="Changeset" AssemblyFile="C:\Program Files\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.TaskFactory.PowerShell.dll">
    <ParameterGroup>
      <changeset Output="true" />
    </ParameterGroup>
    <Task>
      <![CDATA[  
       $tf = & "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf.exe" history . /r /noprompt /stopafter:1 /version:W 
       $changeset=$tf[2].Split(" ")[0] 
       ]]>
    </Task>
  </UsingTask>
  <Target Name="TestBuild">
    <Changeset>
      <Output TaskParameter="changeset" PropertyName="changeset" />
    </Changeset>
    <Message Importance="High" Text="Changeset:++++++ ::::: $(changeset)" />
  </Target>

【讨论】:

    【解决方案2】:

    您可以使用一些新的标准 MsBuild 功能来实现此目的。

    <PropertyGroup> 
      <TF>&quot;$(VS140COMNTOOLS)..\IDE\tf.exe&quot;</TF> 
    </PropertyGroup>
    <Target Name="GetVersion">
      <Exec Command="$(TF) changeset /latest /i" ConsoleToMSBuild="true">
        <Output TaskParameter="ConsoleOutput" PropertyName="TfOutput" />
      </Exec>
      <PropertyGroup>
        <Changeset>$(TfOutput.Split(';')[0].Substring(11))</Changeset>
      </PropertyGroup>
      <Message Importance="high" Text="ChangeSet is $(Changeset)" />
    </Target>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 2022-06-22
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多