在MS Office AddIn中添加没有清单的注册表

时间:2012-09-04 11:51:09

标签: c# outlook vsto ms-office webex

我在c#中制作Outlook 2007 AddIn。因此,在制作安装文件时,我需要修改注册表项。其中一个是“Manifest”字符串,它包含AddIn的清单文件的链接。通过加载,Office应用程序加载AddIn。但是,当我查看WebEx注册表项时,它没有任何Manifest链接。 WebEx registry entry

为什么会这样? WebEx如何处理Manifest链接?

3 个答案:

答案 0 :(得分:1)

(2) types of Outlook Add-ins - COM Add-insExchange Client Extensions。注册表项位置取决于您使用的是 x86 还是 x64 平台。

<小时/>

对于x86:

Exchange客户端扩展程序
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\Client\Extensions
Outlook COM加载项
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins


对于x64:

Exchange客户端扩展程序
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Exchange\Client\Extensions
Outlook COM加载项
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\Outlook\Addins

答案 1 :(得分:1)

要回答您的问题,实现ID2Extensibility接口的COM插件必须使用不同的注册方法。具体来说,它们必须注册为COM服务器,因此它们的注册与注册表中的InProcServer32密钥相关联。基本上,机器已经知道在Class注册表中按名称查找对象的位置,并以这种方式加载相应的DLL。

答案 2 :(得分:0)

回答你的问题,显然有多种方法可以为你的Office应用程序注册加载项。一个是VSTO生成的清单,正如您已经展示的那样。我认为这是C#插件开发中的“现代”方式。

但请记住,Office加载项只是普通的旧COM +组件。因此,您可以使用COM +支持在C,C ++和其他语言中创建加载项:)要注册这些加载项,您需要将某些键添加到Windows注册表中。

使用C#和Visual Studio,您可以通过在“构建”选项卡下的项目设置中选择“注册COM互操作”选项,将C#程序集注册为COM组件。这与运行Regasm实用程序有效,后者在程序集(DLL)上手动安装.NET。

现在,如果您已注册了组件,那么让Office应用程序加载加载项所需要做的就是使用注册表项以“namespace.class_extending_appropriate_interface”格式引用此组件。