我已经为2003、2007和2010创建了一个Outlook加载项。该加载项在2007和2010中正常工作,但是在2003年无法在除我自己的开发机之外的任何计算机上正确加载。没有代码问题,因为在加载行为中没有显示错误,并且它不是禁用项目。该加载项也未显示在COM加载项列表中。此加载项以前曾在2003下运行。

这是奇怪的部分。我有较早时间的加载项副本,因此不包含完整版本的某些功能。此加载项在2003年正确加载。因此,作为测试的一部分,在VM上,我安装了较早的版本(我将其称为 test ),而当前版本不起作用(我称它为完整)。在HKCU>软件>类> CLSID> [[guid]]> InprocServer32下的注册表中,对于 test 版本,我将“清单位置”和“清单名称”键更改为完整版本。然后,我运行Outlook,完整版本运行完美。

我看不到完整加载项在其自身的注册表设置下如何工作,但在 test 下只能在Outlook 2003下正常运行

以下是基本信息:

我的开发人员设置是:

有帮助吗?

解决方案

我终于设法找到了问题,这与注册表有关。

我最初计划为每个版本的Outlook具有单独的加载项,因此我的命名空间和命名约定等如下:

  • [Company] .AddIns.Outlook2003
  • [Company] .AddIns.Outlook2007
  • [Company] .AddIns.Outlook2010

    但是,我设法创建了针对全部3个目标的加载项,因此我将[Company] .AddIns.Outlook2003重命名为[Company] .AddIns.Client。

    我已更改HKCU>软件> Microsoft> Office> Outlook>加载项> MyAddin的注册表设置,以引用所描述的更改,但由于某些原因,我没有在HKCU>软件>类下对其进行更新。

    一旦我在VS中更改了后者的设置,它就起作用了!

    供参考,这些更改是在VS中的“安装项目”下的“视图”>“注册表”下进行的。

    有点恼人的是,此问题在2007/2010年之后没有出现,因为它可能更易于查找。

其他提示

如果尚未完成操作,则应设置以下环境变量以帮助您解决加载项加载问题:

  • VSTO_LOGALERTS=1
  • VSTO_SUPPRESSDISPLAYALERTS=0

    第一个将在包含加载项程序集的目录中创建一个* .log文件,第二个将使您在启动目标应用程序(在本例中为Outlook)时显示错误弹出窗口。

    您还说过,在Office 2003的开发箱中,加载项正常工作。由于Visual Studio在执行生成时会在dev框中自动注册该插件,因此应确保在安装程序中创建了所有必需的注册表项。您可以检查以下MSDN文章中的所需注册表项部分,以验证您是否在安装程序中创建了正确的密钥:

    部署应用程序级加载项

我建议按照此处描述的故障排除步骤进行操作:

哈梅德·艾哈迈迪(Hamed Ahmadi):我的办公室插件未加载!

您确定由于某种原因Outlook未禁用该插件吗?如果您已在计算机级别(而不是用户级别)安装了它,则无论如何它都不会显示在Com加载项列表中。也许尝试将其安装为每个用户的插件(这样它确实会显示在列表中)然后从那里开始?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top