添加到注册表,而不体现在微软Office的AddIn(Adding to registry with

2019-09-22 03:20发布

我想提出在C#中的Outlook 2007的外接程序。 因此,虽然使安装文件,我需要修改注册表项。 其中之一是为“清单”的字符串,有链接到加载项的清单文件。 通过加载该Office应用程序加载的加载项。 但是,当我看着WebEx的注册表项,它亘古不变的任何清单链接。

为什么会这样呢? WebEx的是怎么用具有清单链接做出来的?

Answer 1:

有(2)类型的Outlook的加载项 - COM加载项和Exchange客户端扩展 。 注册表键位置取决于您是否使用x86x64平台。


对于x86:

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


对于x64:

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



Answer 2:

要回答你的问题,实现了ID2Extensibility接口COM加载项,必须使用注册不同的方法。 具体而言,它们必须作为一个COM服务器中注册,从而他们的注册绑定到在注册表中InProcServer32中的键。 基本上,机器已经知道在哪里可以找到在注册表类的名字对象并加载在时尚相应的DLL。



Answer 3:

回答你的问题,显然有很多种方法,你可以注册加入,为你的Office应用程序。 一个是由VSTO生成清单,因为你已经所示。 我想这是在C#中的“现代”的方式加载发展。

但请记住,Office加载只是普通的老式COM +组件。 所以,你可以加载在C,C ++等语言与COM +支持,以及:)注册这些,你需要某些键添加到Windows注册表。

使用C#和Visual Studio,您可以通过Build选项卡下选择在您的项目设置中的“注册为COM Interop”选项注册您的C#组件COM组件。 这是eqvivalent到运行的手动自带.NET安装在您的组件(DLL)Regasm工具。

现在,如果你有你的组件注册,所有你需要做的,让办公应用程序加载加载项使用注册表项以格式“namespace.class_extending_appropriate_interface”来引用该组件。



文章来源: Adding to registry without manifest in MS Office AddIn