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

时间:2019-09-25 18:46:31

标签: tfs

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

另一个选项是通过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浏览器中查看工作项,变更集或文件。