Microsoft 将 Team Foundation Server (TFS) 构建为一个主要和次要服务的集合,包括版本控制、 工作项目跟踪和 EventService 服务。我将 EventService 归类为次要服务,或者更确切地说是支持服务 。EventService 提供了一组事件,触发后,这些事件可执行一些操作(如发送电子邮件或调用基于 SOAP 的 Web 服务)。
在本专栏中,我将介绍 Visual Studio 用户界面提供了哪些现成的事件、EventService 提供了 哪些事件、如何创建和管理订阅以及如何创建自己的 Web 服务来接收和处理事件。尽管我将使用 Visual Studio 2008 和 TFS 2008,但本专栏的大部分内容同样适用于 TFS 2005。
项目警报
如果 启动安装有 Team Foundation Client (TFC) 的 Visual Studio 2008,并连接到现有的团队项目,您将 可以访问主菜单栏上的“团队”菜单。此时,其中有个名为“项目警报”的菜单项 。如果选择此菜单项,Visual Studio 将打开“项目警报”对话框,可在其中为最多四个事件 创建电子邮件订阅(请参阅图 1)。TFS 将把电子邮件正文转为纯文本或 HTML 格式,具体取决于您的偏 好。
图 1 TFC 的项目警报
Visual Studio 提供了以下四个事件:项目签入、生成完成、生成状态更改以及其他人更改了分配给 您的工作项目。对于每种事件,可输入一个或多个电子邮件地址(以分号分隔)。可一个事件一个事件地 选择电子邮件消息的格式(HTML 或纯文本)。请注意,TFS 可引发的事件多于“项目警报” 对话框中所列出的事件。(稍后将详细介绍。)
控制电子邮件消息格式
TFS 通过一组 XSL 转换来控制警报电子邮件消息的格式。在文件夹 C:\Program Files\Microsoft Visual Studio 2008 Team Foundation Server\Web Services\Services\v1.0\Transforms 中,共有 28 个文件。这些文件分 为以下四类:eMailTemplate、plantextXsl、XSD 和 XSL。Microsoft 使用 XSD 文件来定义所提供事件 的数据布局。事件服务使用 XSL 和 plaintextXsl 文件将 XML 数据转换到电子邮件消息正文中。 Microsoft 为“项目警报”对话框中显示的四个事件创建了 XSL 文件。请注意,在 TFS 2008 中,Microsoft 增强了“生成完成”事件,并因而创建了后面带有数字 2 的新 XSL 文件。
最后,eMailTemplate 文件引用 EventService 提供的另外 5 种事件。但是,Microsoft 不再使用或 支持这些文件。代之以使用 DataChangedEvent.xsl 文件。“项目警报”对话框并未提供这些 事件,因此要订阅它们并接收电子邮件通知,您需要使用 Microsoft 提供的一个命令行工具 (BisSubscribe.exe) 或自己编写一些代码。
要控制通知电子邮件消息的格式,需编辑适当的转换 文件。对于通过“项目警报”对话框提供的事件,需要编辑一个或多个 XSL 文件。对于 HTML 格式的电子邮件消息,您会发现所有事件的核心布局都存储在 TeamFoundation.xsl 中。应首先针对要更 改的所有文件创建一个备份副本,然后再测试更改。完成更改后,TFS 将在下次引发事件时使用修改后的 转换。