2

我只想在签入特定文件时触发构建。所以我需要一种从 tfs 构建脚本的变更集中访问关联文件名的方法,这样我就可以在触发构建之前检查条件。

像 tf properties,tf 这样的涉及 tf.exe 的命令会得到帮助吗?我知道不可能从构建脚本中的Exec 任务中提取输出。
我该怎么办?

4

1 回答 1

2

这将需要一些工作,因为 Team Build 假定正在监视更改的文件集和要下载的文件集(构建工作区)是同一件事。我会编写一个自定义 msbuild 任务。基本步骤:

  1. 使用 GetExtendedItem() 获取特殊文件的本地版本
  2. 将其与先前成功构建中记录的版本进行比较(将此信息存储在注册表中,或者可能是一些硬编码路径)
  3. 如果版本匹配,则中止构建
  4. 如果没有,继续构建
  5. 如果构建成功,更新注册表

除了 GetExtendedItem() [顺便说一下,这是tf prop调用的 API],其他可能对此类任务有用的信息是工作区中包含的最新变更集。为了有效地实现这一点,请改用 QueryHistory,同时为 versionFrom 和 versionTo 传递 WorkspaceVersionSpec。等效地:tf hist $/ -r -version:W~W

于 2009-08-27T16:11:19.263 回答