5

我正在构建一个集成系统,当用户签入某些更改时,该系统需要在 Team Foundation Server (2010+) 服务器上执行一些代码。我可以图解访问签到没有问题,但我想知道何时添加新签到。理想情况下,我希望收到通知并提供签入数据,以便我可以对其进行操作并将我需要的内容发布到不同的 API,但如果只存在新签入的通知,那就足够了。理想情况下,我可以让 tfs 在同一台机器上执行对我自己的 C# 代码的调用。

在过去的两天里,我一直在网上寻找,我坚信这是可能的,但是我似乎找不到任何关于如何做到这一点的细节,坦率地说,我已经没有想法了在哪里看。如果有人对从哪里开始,从哪里看,或者理想情况下有任何类似的源想法有任何想法,将不胜感激。

主要是,我一直在 TFS 集成工具中进行挖掘,但其文档充其量仍然值得怀疑。我找到了所有现有的适配器源代码(用于 clearcase 等),但在任何地方都看不到任何触发执行的东西,因为我怀疑这些更适合单向迁移。

4

1 回答 1

8

有不同的方法可以解决这个问题:

  1. 团队建设。通过使用 TFS 构建服务器,您可以创建持续集成构建或门控签入构建。然后,在构建工作流程中,您可以响应您检测到的任何更改。您可以使用 TFS 客户端对象模型来获取 Changeset 对象。它包含您需要的所有数据。ALM Rangers 编写了一份详尽的指南,解释如何扩展和自定义构建过程以满足您的需求。

  2. 签到政策。通过创建自定义签入策略,您可以在客户端(在 Visual Studio 中)运行代码预签入。该策略可以作为如何与未决更改交互的示例。

  3. ISubscriberTFS 应用层插件。@ppejovic 已经提到过。Application Tier 插件安装在 TFS 服务器上,并将在进程中运行。由于它是在进程中托管的,因此您可以做很多事情。作用于工作项和/或源代码控制的示例是合并工作项处理程序,即TFS 聚合器。如果需要,您还可以退回到客户端对象模型,如此处所述

  4. SOAP API。这是 ISubscriber 接口的前身。您仍然可以使用它,但您将从 ISubscriber 解决方案中获得更多功能和效率。

  5. 客户对象模型。您始终可以在定期连接到 TFS 的系统上创建服务或计划作业,以请求自上次检查以来的历史记录。通过简单地存储查询比您迄今为止看到的最高变更集编号更新的所有内容,您可以获得所需的所有信息,而无需扩展 TFS 本身。您将寻找VersionControlServer类。QueryHistory方法是获取变更集所需的方法。

有一个很好的 Pluralsight 课程,可以带您了解其中一些场景

与这些项目中的大多数一样,文档很少,Red-Gate Reflector .NET 或 Jetbrains dotPeek 等工具非常宝贵。

于 2013-07-12T09:28:18.450 回答