我有一个Outlook 2007 Add-in,最近我接手了这个工作。现在的情况是,在生产环境下,有些用户会不定期地发现他们的Add-in被停用了。在Add-in中没有任何日志,并且在每个方法/事件调用到add-in代码时都设置了try/catch块来消耗异常。我做了一些谷歌搜索,发现如果有未处理的异常抛出到Outlook,Outlook就会对Add-in进行"软停用"。
据我所知,从Add-in中没有抛出任何异常。我的想法要么是 1) 在Addin中创建某种全局异常处理程序,以确保捕获所有异常。或者2) 以某种方式监听Outlook在注册表中“禁用”Add-in并让此侦听器删除Outlook正在设置的reg键。
据我所知,从Add-in中没有抛出任何异常。我的想法要么是 1) 在Addin中创建某种全局异常处理程序,以确保捕获所有异常。或者2) 以某种方式监听Outlook在注册表中“禁用”Add-in并让此侦听器删除Outlook正在设置的reg键。
I have attempted to do #1 by the following:
AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException;
System.Windows.Forms.Application.ThreadException += Application_ThreadException;
但是两者都没有成功。
我意识到 System.Windows.Forms.Application.ThreadException 不一定适用于 Outlook Add-ins,但我想为什么不试试呢。
此外,我已经阅读过关于 Outlook 为 Add-ins 启动单独的 AppDomain 的内容,因此我希望 AppDomain.CurrentDomain 可以用于此目的。我编写了一些故意抛出异常的代码进行测试,但无法进入这两个事件,并且 Outlook 继续禁用 Add-in。
任何帮助/见解将不胜感激。