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

更新:2010 年 5 月

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

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

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

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

提示

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

为当前用户注册外接程序。所有用户

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

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

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

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

Microsoft Office 版本

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

默认情况下,2007 Microsoft Office system 中的应用程序只能加载在 HKEY_CURRENT_USER 下注册的外接程序。 要加载 HKEY_LOCAL_MACHINE 下注册的外接程序,安装有这些应用程序的计算机还必须安装有修复程序包 976477。 有关更多信息,请参见 https://go.microsoft.com/fwlink/?LinkId=184923

部署类型

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

Type

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 部署解决方案,则请追加字符串 |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 (.msi) 设定的 Outlook 2010 加载项的加载时间。 此注册表项不能使用 ClickOnce 进行设置。

Outlook 窗体区域的注册表项

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

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

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

有关窗体区域注册表项的更多信息,请参见 在 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。

请参见

概念

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

Office 解决方案生成过程概述

其他资源

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

部署 Office 解决方案

修订记录

Date

修订记录

原因

2010 年 5 月

在清单条目中提供了更多有关 |vstolocal 使用情况的上下文。

信息补充。