应用程序级外接程序的注册表项
部署使用 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 的版本以及加载项的部署方式。
Microsoft Office 版本
Microsoft Office 2010 和 Microsoft 注册在 HKEY_LOCAL_MACHINE 或 HKEY_CURRENT_USER 下的 Office 2013 应用程序可以加载外接程序。
若要加载外接程序注册中的 HKEY_LOCAL_MACHINE 下,计算机必须安装 976477 的更新程序包。有关更多信息,请参见 https://go.microsoft.com/fwlink/?LinkId=184923。
部署类型
如果使用 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 进行设置。 |
Outlook 窗体区域的注册表项
在 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。 |