Outlook 2003加载项将无法加载,但处于正常工作状态

Ste*_*veA 11 c# deployment vsto outlook-addin outlook-2003

我已经为2003,2007和2010创建了一个Outlook加载项.这个加载项在2007年和2010年运行良好,但在2003年没有在我自己的开发机器之外的任何机器上正确加载.没有代码问题,因为加载行为中没有显示错误,并且它不是禁用的项目.加载项也未显示在COM加载项列表中.这个加载项在2003年之前已经有效.

这是奇怪的部分.我有一个早期时间点的加载项副本,因此不包含完整版本的某些功能.这个加载项在2003年正确加载.因此,作为我的测试的一部分,在VM上,我安装了早期版本(我称之为测试)和当前版本不起作用(我将其称为完整版) .在HKCU>软件>类> CLSID> [[guid]]> InprocServer32下的注册表中,对于测试版本,我将"Manifest Location"和"Manifest Name"键更改为完整版的值.然后我运行Outlook,完整版完美运行.

我无法看到完整的加载项在它自己的注册表设置下是如何工作的,但在测试版下工作正常,并且仅在Outlook 2003上工作.

这是基本信息:

我的开发设置是:

  • Windows 7 64位
  • Outlook 2003已安装
  • 为外接程序项目运行VS2008,但也使用VS2010进行附属程序集.
  • 包含并修改了"设置安全性"项目,以允许多个程序集设置CASPol.

安装项目中包含以下预先要求:

  • .Net 2.0
  • .Net 3.5SP1
  • Office 2003 PIA(分别为2007年和2010年的2007年和2010年PIA)
  • VSTOSE运行时
  • Windows Installer 3.1

任何提示都会非常感激,因为我已经花了将近4天的时间来解决这个问题!

TIA.


更新1:

根据@JoaoAngelo评论我检查了注册表设置,它们如下:

HKCU>软件>类> CLSID> {加载项CLSID}> InprocServer32

 - (default) - '%CommonProgramFiles%\Microsoft Shared\VSTO\8.0\AddinLoader.dll'
 - ManifestLocation - path to the containing folder
 - ManifestName - the .dll.manifest file name
 - ThreadingModel - 'Both'
Run Code Online (Sandbox Code Playgroud)

HKCU>软件>微软> Office> Outlook> Addins> MyAddin

 - (default) - not set
 - CommandLineSafe - '1'
 - Description - a string
 - FriendlyName - add-in ID
 - LoadBehavior - '3' (this never gets set to 2, which would indicate an issue)
 - Manifest - path to the .dll.manifest of the add-in assembly
 - Path - path to the containing folder
Run Code Online (Sandbox Code Playgroud)

我根据部署页面在后者下添加了以下内容,但无济于事:

 - ManifestLocation 
 - ManifestName
Run Code Online (Sandbox Code Playgroud)

更新2:

根据0xA3评论; 在HKCR> MyAddin下,我有一个带有单个字符串值的CLSID键:

(default) - {add-in CLSID}
Run Code Online (Sandbox Code Playgroud)

CLSID与HKCU> Software> Classes> CLSID和整个注册表中的相同.

Ste*_*veA 3

我终于找到了问题所在,它与注册表有关。

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

  • [公司].AddIns.Outlook2003
  • [公司].AddIns.Outlook2007
  • [公司].AddIns.Outlook2010

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

我更改了 HKCU > 软件 > Microsoft > Office > Outlook > Addins > MyAddin 的注册表设置,以引用所描述的更改,但由于某种原因,我没有在 HKCU > 软件 > 类下更新它。

当我在VS中更改后一个设置后,它就起作用了!

作为参考,这些更改是在 VS 的“安装项目”下的“查看”>“注册表”下进行的。

有点烦人的是这个问题在 2007/2010 下没有出现,因为它可能更容易追踪。