1

我正在 c# 中制作 Outlook 2007 插件。因此,在制作设置文件时,我需要修改注册表项。其中之一是“Manifest”字符串,它具有指向 AddIn 清单文件的链接。通过加载此办公应用程序加载插件。但是当我查看 WebEx 注册表项时,它没有任何清单链接。 WebEx 注册表项

为什么会这样?如果没有清单链接,WebEx 是如何做到的?

4

3 回答 3

1

(2) 种 Outlook 加载项- COM 加载项Exchange 客户端扩展。注册表项位置取决于您使用的是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

于 2012-09-04T13:44:43.580 回答
1

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

于 2013-06-07T09:31:50.383 回答
0

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

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

使用 C# 和 Visual Studio,您可以通过在 Build 选项卡下的项目设置中选择“Register for COM Interop”选项将 C# 程序集注册为 COM 组件。这相当于在程序集 (DLL) 上手动运行 .NET 安装附带的 Regasm 实用程序。

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

于 2013-02-12T11:55:12.790 回答