Outlook 2007加载项异常处理

时间:2010-05-07 21:37:54

标签: outlook-addin outlook-2007-addin

我有一个我最近继承的Outlook 2007加载项,目前在生产中存在一些问题,其中一些用户定期禁用加载项并且看似随机。加载项中没有日志,并且每个方法/事件调用都有try / catch(和eat)块到加载项代码中。我做了一些谷歌搜索,发现如果Outlook中有未处理的异常,Outlook会对加载项进行“软禁用”。

据我所知,没有任何异常从加载项中抛出。我想要做的是1)在插件中创建某种全局异常处理程序,以100%确保捕获所有异常。或者2)以某种方式监听outlook“禁用”注册表中的加载项并让该监听器删除outlook正在设置的reg键。

我试图通过以下方式做#1:     

AppDomain.CurrentDomain.UnhandledException += AppDomain_UnhandledException;
System.Windows.Forms.Application.ThreadException += Application_ThreadException;

但都没有成功。

我意识到System.Windows.Forms.Application.ThreadException不一定适用于Outlook加载项,但我想为什么不尝试它。

另外,我已经读过Outlook为加载项启动了一个单独的AppDomain,所以我希望AppDomain.CurrentDomain可以为此工作。我写了一些代码,故意将有关异常抛出进行测试,无法进入其中任何一个事件,Outlook继续禁用外接程序。

非常感谢任何帮助/见解。

1 个答案:

答案 0 :(得分:1)

当Outlook Addin被禁用时,它会将加载行为从3更改为2.您可以从注册表中检查此加载行为,以确定是否禁用了Addin。