Outlook 2007加载项异常处理

Ada*_*dam 9 outlook-2007-addin outlook-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;
Run Code Online (Sandbox Code Playgroud)

但都没有成功.

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

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

任何帮助/见解将不胜感激.

Kap*_*pil 1

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