我的VSTO 3.0 Outlook插件无法加载

时间:2009-08-25 18:58:00

标签: vsto outlook-2007 outlook-addin

我正在尝试诊断为什么用C#/ VSTO 3.0 / VS 2008编写的Outlook插件在安装后无法加载。

该插件在我安装了Visual Studio 2008的开发机器上运行得非常好。我不能指望我的所有用户都拥有所有先决条件,所以我通过这些步骤来编写安装程序: http://msdn.microsoft.com/en-us/library/cc563937(loband).aspx

我在全新安装的Outlook 2007上安装了新的Windows XP SP 2计算机上的加载项。它安装了所有的先决条件(.NET 3.5,VSTO 3.0运行时,Windows Installer 3.1,2007 PIA)。 Outlook启动但加载项未运行。如果我转到信任中心的加载项选项卡,我会在“非活动应用程序加载项”部分中看到我的加载项,并显示消息“未加载。在加载COM加载项期间发生运行时错误。“

不确定如何找到特定错误,以便我可以解决它。

reg键看起来不错。在HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ Outlook \ Addins \ BlahAddin下,我看到Description,FriendlyName,LoadBehavior(设置为3,直到失败,之后如果设置为2)和Manifest。

尝试了VSTO_SUPPRESSDISPLAYALERTS环境变量技巧,然后从命令行启动了Outlook,但没有输出。

我的远程调试或多或少都在工作,但我不确定要寻找什么。当我附加到Outlook时,我没有看到我的DLL加载,但是再次可能托管的DLL在VS中不会以相同的方式显示。

关于我可以遵循的后续步骤的任何其他想法,以产生我可以诊断的特定错误?

4 个答案:

答案 0 :(得分:3)

经过数周的疼痛解决了我的问题。在设置构建期间,“Manifest”reg键被破坏为一些垃圾值。这是一个已知的Visual Studio错误,据说可以在Visual Studio 2008 SP 1中修复,但显然不适合我。将项目名称重命名为与插件名称不同,修复了问题。随便,嗯?

答案 1 :(得分:2)

确保在Outlook调用的所有方法的顶层都有try-catch处理程序,并记录您无法以某种方式处理的任何异常。将您的故障排除重点放在Startup方法和初始化期间调用的其他方法等方法上。

答案 2 :(得分:1)

您可能希望使用远程调试器对其进行调试。从您的测试计算机上的开发人员计算机(在Program Files中的Visual Studio文件夹中)中共享MSVCMON.EXE文件夹(与UNC路径共享),并在模块中的调试器捕获(.NET)异常下启动Outlook在你的方法中加入断点。

如果您需要在安装解决方案之前每次都清理测试计算机,那么您应该在Virtual PC 2007 VM下运行XP(免费下载)并在设置除插件之外的所有内容后切换到差分HD预安装状态一次,因此您不必在更改程序时继续卸载/重新安装以修复错误。

您是在安装Debug版本还是发布版本?也许一种口味有不同的要求。只是猜测。

-Mike [MSFT Office Dev]

答案 3 :(得分:1)

在您的计算机上,当您从Visual Studio运行插件时,它应该在HKEY_CURRENT_USER \ Software \ Microsoft \ VSTO \ Security \ Inclusion {SomeGuid}中创建一个注册表项。确保这些注册表设置也与您的插件一起部署。它们是允许您的代码受信任的。