如何在用户签入代码后在TFS服务器上执行代码

时间:2013-07-11 23:55:40

标签: c# tfs tfsintegrationplatform

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

过去两天我一直在寻找互联网,我坚信这是可能的,但我似乎无法找到有关如何做到这一点的任何细节,坦率地说,我正在运行关于在哪里看的想法。如果有人对从哪里开始,在哪里看,或者理想的任何类似的来源想法有任何想法,我们将不胜感激。

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

1 个答案:

答案 0 :(得分:8)

您可以采用不同的方法来解决这个问题:

  1. 团队建设。通过使用TFS Build Server,您可以创建持续集成构建或Gated Checkin构建。在构建工作流程中,您可以响应您检测到的任何更改。您可以使用TFS客户端对象模型来获取Changeset对象。它包含您需要的所有数据。 ALM Rangers编写了extensive guide explaining如何扩展和自定义构建过程以满足您的需求。

  2. Checkin Policy。通过创建自定义签入策略,您可以在客户端(Visual Studio内部)上运行代码预签入。 This policy可以作为如何与待处理更改进行互动的示例。

  3. ISubscriber TFS应用程序层插件。已经被@ppejovic提到了。 Application Tier插件安装在TFS服务器上,将在进行中运行。由于它是在托管过程中,你可以做很多事情。作用于工作项和/或源代码管理的示例是Merge Work Items处理程序TFS Aggregator。如果需要,您还可以回退到客户端对象模型as described here

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

  5. Client Object Model。您始终可以在定期连接到TFS的系统上创建服务或预定作业,以便自上次检查以来请求历史记录。通过简单地存储查询比您目前所见的最高变更集编号更新的所有内容,您可以获得所需的所有信息,而无需扩展TFS本身。您将寻找VersionControlServer课程。 QueryHistory方法是获取变更集所需的方法。

  6. 有一个很好的Pluralsight课程可以引导你完成some of these scenario's

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