我在c#中制作Outlook 2007 AddIn。因此,在制作安装文件时,我需要修改注册表项。其中一个是“Manifest”字符串,它包含AddIn的清单文件的链接。通过加载,Office应用程序加载AddIn。但是,当我查看WebEx注册表项时,它没有任何Manifest链接。
为什么会这样? WebEx如何处理Manifest链接?
答案 0 :(得分:1)
有(2) types of Outlook Add-ins - COM Add-ins和Exchange Client Extensions。注册表项位置取决于您使用的是 x86 还是 x64 平台。
<小时/>
Exchange客户端扩展程序:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Exchange\Client\Extensions
Outlook COM加载项:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins
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”格式引用此组件。