如何自定义 TFS 工作项警报电子邮件



我正在使用TFS2018,并且正在尝试自定义工作项警报电子邮件的内容。

我已尝试按照此页面上的说明编辑WorkItemChangedEvent.xsl文件。但是,我发现在该文件夹下有一个WorkItemChangedEvent.xsl文件和一个WorkItemChangedEvent_2.xsl文件。我尝试修改这两个文件并重新启动应用程序池,但更改似乎没有生效。然后我甚至尝试通过重命名来删除WorkItemChangedEvent.xsl文件,发现电子邮件警报在没有该文件的情况下仍然有效。然后,我尝试删除 WorkItemChangedEvent_2.xsl 文件,发现警报停止工作。因此,我得出结论,所需的实际文件是 WorkItemChangedEvent_2.xsl,而不是 WorkItemChangedEvent.xsl。但是,我随后尝试放入一个名为 WorkItemChangedEvent_2.xsl 的空文件,警报再次开始工作。所以现在我很困惑。似乎系统只需要存在一个名为 WorkItemChangedEvent_2.xsl 的文件才能使警报正常工作,文件的实际内容无关紧要。那么系统实际上从哪里获取电子邮件格式呢?需要执行哪些操作才能自定义工作项警报电子邮件?

通过更多的测试,我们还重现了您的方案并生成了相同的 WorkItemChangedEvent_2.xsl。两者的文件完全不同,例如WorkItemChangedEvent_2.xsl有 134KB,WorkItemChangedEvent.xsl只有 21KB。但是,在浏览了MSDN和相关官方链接后,我们没有找到任何文档包含详细说明为什么有两个文件。

与您不同,如果我们更改WorkItemChangedEvent_2.xsl,它可以正常工作,并且电子邮件警报格式会更新。在此过程中,我们还将重新启动 TFS 后台作业代理服务。

如果您丢失了 WorkItemChangedEvent_2.xsl 中的内容,请在此处共享此文件。您可以尝试在本地下载和修改,再次测试。

如果您仍然遇到此问题,您还可以使用以下解决方法。

创建自己的扩展或使用一些第三方扩展来处理这种情况。例如此 TfsNotificationRelay 包括以下功能:

  • 通知多个目标
  • 基于规则的事件过滤
  • 正则表达式过滤集合、项目、存储库、分支等。
  • 可配置的通知格式
  • 通知链接返回到 TFS Web 中的事件
  • 可扩展以支持其他目标

另一种选择是通过API订阅TFS事件,此方法提供了设置所需电子邮件主题的选项。查看此博客以获取更多信息:http://geekswithblogs.net/BobHardister/archive/2013/07/24/tfs-2012-api-create-alert-subscriptions.aspx(该博客是为TFS2012编写的,也类似于TFS2018(


事件服务使用.xslplaintextXsl文件来 将事件的 XML 数据转换为电子邮件。编辑 .xsl 文件以获取电子邮件通知的不同格式。为 HTML格式的电子邮件,所有事件的核心布局是 存储在TeamFoundation.xsl中。您应该制作任何 要更改的文件,然后测试更改。在你之后 已进行更改,TFS 将在下一个使用修改后的转换 它为事件生成通知的时间。

WorkItemChangedEvent_2.xsl 这只会影响 HTML 电子邮件,首先检查您是否收到 HTML 电子邮件

发出的电子邮件的内容是从TeamFoundation.xsl文件和上述WorkItemChangedEvent xsl文件自动生成的。

因此,如果您想自定义详细内容,请同时更改TeamFoundation.xsl相关部分。

但是,请注意,不建议修改 TeamFoundation.xsl 文件。如果确实修改了此文件的内容,则必须彻底测试您的修改。对此文件的错误修改可能会导致 TFS 电子邮件警报失败,并导致您无法在 Web 浏览器中查看工作项、变更集或文件。

最新更新