gpt4 book ai didi

tfs - tfspreview 上的 tf.exe

转载 作者:行者123 更新时间:2023-12-04 13:45:46 25 4
gpt4 key购买 nike

我需要在 tfspreview 中获取 ChangeSetId 以进行持续集成。我只需要这个单一号码而已。我尝试了我能找到的所有可能的 MSBuild 任务,但总是有另一个小问题阻止了我。

对于 MSBuild.ExtensionPack.Tfs.TeamBuild我得到:

Could not load file or assembly 'Microsoft.TeamFoundation.Client, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

TfsClient -task在社区包中(生成以下 exec: tf.exe history . /StopAfter:1 /noprompt /format:detailed /recursive )我得到:
The specified task executable could not be run. The system cannot find the file specified

我的问题是;
是否可以执行 TF.exe在 tfspreview 服务器上?
或者我可以得到组件 Microsoft.TeamFoundation.Client在构建服务器上执行这两个任务之一?

最佳答案

好吧,我在这里告诉您,无需编写您自己的自定义任务,使用 API 等,这也是可能的……StackOverflow 上有许多文章,但提供解决方案的文章似乎不适用于 TFS 2010 . 我只是花了一整天的时间把头撞在墙上 :D

  • 您需要安装 MSBuild 社区任务。确保您从这里获得最新版本:https://github.com/loresoft/msbuildtasks .最新版本似乎已针对 TFS 2010 程序集进行了更新和重建。
  • 您将使用 MSBuild.Community.Tasks.Tfs.TfsClient 任务。您收到无法运行可执行文件的错误的原因是因为这是一个 MSBuild ToolTask​​,您需要将可执行文件的路径作为属性 (ToolPath) 传递给任务。
  • TfsClient 任务只是 tf.exe 的包装器,该任务缺少许多可能的功能,用于以 MSbuild-y 方式处理开关。 (并且此任务的文档不存在 - 我不得不查看代码)幸运的是我发现您可以输入所有命令行开关作为命令本身的一部分。
  • 所以你的最终电话看起来像这样......
    <MSBuild.Community.Tasks.Tfs.TfsClient ToolPath="$(PathToTfTool)"
    Command="history /collection:$(TfsProjectCollectionUrl) /stopafter:1 /version:T /format:detailed $(VersionControlPathForBuildWorkspace)"
    Recursive="true"
    >

    <Message Text="TFS ChangeSetNumber: $(ChangesetNumber)" />

  • 在经历了 22 次悲惨的失败构建或没有数据的构建之后,我终于得到了......
    TFS 变更集编号:41

    雅虎!

    从马丁伍德沃德那里得到命令:
    http://www.woodwardweb.com/vsts/determining_the.html
    确保您使用/detailed 开关,否则它不会返回更改集。我不得不查看任务的代码,并弄清楚它是如何解析 tf.exe 的输出来解决这个问题的。

    TfsClient 的代码在这里供引用:
    https://github.com/loresoft/msbuildtasks/blob/master/Source/MSBuild.Community.Tasks/Tfs/TfsClient.cs

    关于tfs - tfspreview 上的 tf.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748338/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com