我有一个我最近继承的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继续禁用外接程序.
任何帮助/见解将不胜感激.
我正在为Outlook 2007(VSTO 4.0,.Net 4.0)开发一个加载项.每当我使用msi在目标计算机上安装时,所有注册表设置都已正确设置,我可以看到已安装的加载项下列出的加载项.但是,它列在不活动状态,每当我去管理com加载项并选中该框以启用它时,它都不会保持检查状态.
我检查了注册表设置,并且加载行为已从3更改为0,因此我关闭outlook,将其更改回3并再次启动Outlook.它再一次从3变为0.
我已经阅读了这篇文章:将VSTO加载项部署到所有用户(Saurabh Bhatia)和现在多次引用的msdn文档,无法弄清楚我哪里出错了.
任何帮助调试此问题的任何帮助,甚至更好,解决此问题,将不胜感激.