应用程序级外接程序的注册表项

部署使用 Visual Studio 2012 创建的外接程序时,必须创建一组特定的注册表项。这些注册表项提供可使 Microsoft Office 应用程序发现和加载外接程序的信息。

**适用于:**本主题中的信息适用于 Microsoft Office 2013 和 Microsoft Office 2010 的应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能

生成项目时,Visual Studio 会在开发计算机上创建这些注册表项,以便您可以轻松地运行并调试外接程序。如果使用 ClickOnce 部署外接程序,则将在最终用户计算机上自动创建注册项。如果使用 Windows Installer 来部署外接程序,则必须配置 InstallShield limited Edition 项目创建在最终用户计算机上注册表项。

关于如何在外接程序的加载过程中使用注册表项的更多信息,请参见 应用程序级外接程序的体系结构

说明说明

在本主题中,文本外接程序 ID 表示外接程序的唯一 ID。默认情况下,该 ID 是您外接程序集的名称。

注册当前用户的外接程序与. 所有用户

安装外接程序后,可以如下两种方式进行注册:

  • 只有当前用户(也就是说,这仅供添加在安装时登录到计算机的用户)。在这种情况下,在 HKEY_CURRENT_USER 下创建注册表项。

  • 所有用户(即任何能登录到计算机并可以使用外接程序的用户)。在这种情况下,在 HKEY_LOCAL_MACHINE 下创建注册表项。

可为当前用户注册通过使用 Visual Studio 2012 创建的所有外接程序。但是,只有在某些方案中所有用户才能注册外接程序。这些情形取决于计算机上 Microsoft Office 的版本以及加载项的部署方式。

Bb386106.collapse_all(zh-cn,VS.110).gifMicrosoft Office 版本

Microsoft Office 2010 和 Microsoft 注册在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 下的 Office 2013 应用程序可以加载外接程序。

若要加载外接程序注册中的 HKEY_LOCAL_MACHINE 下,计算机必须安装 976477 的更新程序包。有关更多信息,请参见 https://go.microsoft.com/fwlink/?LinkId=184923

Bb386106.collapse_all(zh-cn,VS.110).gif部署类型

如果使用 ClickOnce 部署外接程序,则仅当前用户可以注册外接程序。这是因为 ClickOnce 只支持在 HKEY_CURRENT_USER 下创建密钥。如果要尝试将外接程序注册到计算机上的所有用户,则必须使用 Windows Installer 来部署外接程序。关于这些部署类型的更多信息,请参见 使用 ClickOnce 部署 Office 解决方案 and 使用 Windows Installer 部署 Office 解决方案

注册表项

所需的外接程序注册表项位于所有应用程序(Visio 除外,它的 根 为 HKEY_CURRENT_USER or HKEY_LOCAL_MACHINE)的以下注册表项之下。

Root\Software\Microsoft\Office\应用程序名称\Addins\外接程序 ID

对于 Visio,注册表项位于下面的注册表项之下。

Root\Software\Microsoft\Visio\Addins\add-in ID

下表列出了此注册表项下的项。

Entry

类型

Description

REG_SZ

必需。外接程序的简短说明。

当用户在 Microsoft Office 应用程序的“选项”对话框的“外接程序”窗格中选择外接程序时,将显示此说明。

FriendlyName

REG_SZ

必需。在 Microsoft Office 应用程序中的“COM 外接程序”对话框中显示的外接程序的描述性名称。默认值为外接程序 ID。

LoadBehavior

REG_DWORD

必需。指定应用程序何时尝试加载外接程序和外接程序当前状态(已加载或未加载)的值。

默认情况下,该项设置为 3,指定外接程序在启动时加载。有关更多信息,请参见 LoadBehavior 值。

Manifest

REG_SZ

必需。外接程序的部署清单的完整路径。该路径可以是本地计算机、网络共享 (UNC) 或 Web 服务器 (HTTP) 上的某个位置。

如果使用 Windows Installer 部署解决方案,您必须添加前缀 file:/// 到 清单 路径。您还必须追加该字符串 |vstolocal (即竖线|后跟 vstolocal 直至此路径的末端。这可确保从安装文件夹,而非 ClickOnce 缓存加载您的解决方案。有关更多信息,请参见使用 Windows Installer 部署 Office 解决方案

说明说明
当在开发计算机上构建外接程序时,Visual Studio 会自动将 |vstolocal 字符串附加到此注册表项。

Warmup

REG_DWORD

可选。一个值,指示在加载外接程序之前加载 .NET Framework 和 Visual Studio Tools for Office Runtime,并缩短加载外接程序的感知时间。设置 Warmup 项为 1,并将 LoadBehavior 项结合使用它减少了使用 Windows Installer 的 Outlook 2010 和 Outlook 2013 外接程序的加载时 (.msi),部署。此注册表项不能使用 ClickOnce 进行设置。

Bb386106.collapse_all(zh-cn,VS.110).gifOutlook 窗体区域的注册表项

在 Outlook 的外接程序中创建自定义窗体区域时,将使用其他注册表项在 Outlook 中注册该窗体区域。这些项在不同的注册表项下创建,用于窗体区域支持的每个消息类。这些注册表项位于以下位置,其中 Root 为 HKEY_CURRENT_USER 或 HKEY_LOCAL_MACHINE。

Root\Software\Microsoft\Office\Outlook\FormRegions\消息类

像所有外接程序共享的其他注册表项一样,生成项目时,Visual Studio 会在开发计算机上创建这些窗体区域注册表项。如果使用 ClickOnce 部署外接程序,则将在最终用户计算机上自动创建注册项。如果使用 Windows Installer 来部署外接程序,则必须配置 InstallShield limited Edition 项目创建在最终用户计算机上注册表项。

有关窗体区域注册表项的更多信息,请参见 在 Windows 注册表中指定窗体区域。有关 Outlook 窗体事件的更多信息,请参见 创建 Outlook 窗体区域

LoadBehavior 值

Root\Software\Microsoft\Office\应用程序名称\Addins\外接程序 ID 键项下的 LoadBehavior 条目包含指定外接程序运行时行为按位组合的值。低顺序位(值 0 和 1)指示外接程序当前是卸载的还是加载的。其他位指示应用程序尝试加载加载项。

通常, 在外接程序安装在最终用户计算机上时,LoadBehavior 条目设置为 0、3、9 或 16(十进制)。默认情况下,Visual Studio 会在您生成或发布外接程序的 LoadBehavior 输入时将其设置为 3。

下表列出了 LoadBehavior 条目的所有可能的值。此表中的一些说明,涉及手动或以编程方式加载外接程序。要手动加载外接程序,请选择应用程序中**“COM 外接程序”**中的外接程序旁的复选框。要以编程方式加载外接程序,设置 COMAddIn 对象的 Connect 属性,该对象将外接程序表示为 true。

值(十进制)

外接状态

外接程序加载行为

描述

0

Unloaded

不会自动加载

应用程序从不会尝试自动加载外接程序。用户可以尝试手动加载加载项,也可以以编程方式加载加载项。

如果成功加载了外接程序,则 LoadBehavior 值保持为 0,但“COM 外接程序”对话框中的外接程序状态会更新,以指示加载了外接程序。

1

Loaded

不会自动加载

应用程序从不会尝试自动加载外接程序。用户可以尝试手动加载加载项,也可以以编程方式加载加载项。

尽管“COM 加载项”对话框指示外接程序在应用程序启动后加载,但外接程序实际上直到被手动加载或以编程方式加载后才如此。

如果应用程序成功加载了外接程序,则 LoadBehavior 值更改为 3,应用程序关闭后保持为 0。

2

Unloaded

启动时加载

应用程序不会尝试自动加载外接程序。用户可以尝试手动加载加载项,也可以以编程方式加载加载项。

如果应用程序成功加载了外接程序,则 LoadBehavior 值更改为 3,应用程序关闭后保持为 3。

3

Loaded

启动时加载

应用程序尝试在启动时加载外接程序。生成或发布 Visual Studio 中的外接程序时,这是默认值。

如果应用程序成功加载了外接程序,LoadBehavior 值将仍为 3。如果加载外接程序时出错,则 LoadBehavior 值更改为 3,并在应用程序关闭后仍然为 2。

8

Unloaded

按需加载

应用程序不会尝试自动加载外接程序。用户可以尝试手动加载加载项,也可以以编程方式加载加载项。

如果应用程序成功加载了外接程序,LoadBehavior 值将更改为 9。

9

Loaded

按需加载

外接程序将在应用程序需要时加载,例如用户单击使用外接程序中功能的 UI 元素(例如功能区中的自定义按钮)时。

如果应用程序成功加载了外接程序,则 LoadBehavior 值保持为 9,但“COM 外接程序”对话框中的外接程序状态被更新,以指示加载了外接程序。如果在加载外接程序时发生错误,则 LoadBehavior 值会更改为 8。

16

Loaded

第一次加载,之后按需加载

如果您希望您的外接程序按需加载,则设置此值。当用户首次运行应用程序时加载外接程序。用户下一次运行应用程序时,将加载外接程序定义的所有 UI 元素,但是外接程序只在用户单击与其关联的 UI 元素时才加载。

如果应用程序成功首次加载外接程序,则在加载外接程序的情况下 LoadBehavior 值保留为 16。应用程序关闭后,LoadBehavior 值更改为 9。

请参见

概念

应用程序级外接程序的体系结构

其他资源

Visual Studio 中 Office 解决方案的体系结构

生成 Office 解决方案

部署 Office 解决方案