如果你有现有的 COM 加载项或 VSTO 加载项,则可以在 Office 外接程序中生成等效的功能,从而使解决方案能够在其他平台(如 Office web 版 或 Mac)上运行。 在某些情况下,Office 外接程序可能无法提供相应的 COM 或 VSTO 外接程序中提供的所有功能。 在这些情况下,COM 或 VSTO 加载项在 Windows 上提供的用户体验可能比相应的 Office 加载项提供更好的体验。
注意
由于 COM 和 VSTO 加载项只能在 Windows 上安装,本文将 COM 和 VSTO 加载项统称为“仅限 Windows”加载项。
重要
新的 Outlook on Windows 不支持 COM 和 VSTO 加载项。 经典 Outlook on Windows 桌面客户端仍支持这些加载项。 若要了解详细信息,请参阅 为 Windows 上的新 Outlook 开发 Outlook 加载项。
你可以配置 Office 加载项,以便在用户的计算机上安装了等效的仅限 Windows 的加载项时,Windows 上的 Office 将运行仅限 Windows 的加载项,而不是 Office 加载项。 仅限 Windows 的加载项称为“等效”,因为 Office 将在仅限 Windows 的外接程序和 Office 加载项之间无缝转换,根据该加载项安装在用户的计算机上。 有关详细信息,请参阅 用户的等效行为。 一般情况下,仅当满足以下条件时,加载项才应被视为等效项,但在某些情况下,不符合这些条件的加载项可被视为等效项。
- 它们都由同一开发人员创建,通常是在统一清单的 属性中指定的
"developer"实体,或者仅外接程序清单中的 ProviderName 元素。 - 它们都设计为安装在同一个或多个 Office 应用程序上,并且主要处理功能重叠的相同工作负载。
- 它们具有相同或高度相似的公共名称和用户界面,包括控件名称和图标。
如果仅 Windows 加载项被卸载,Office 将在下次启动主机 Office 应用程序时自动激活 Office 加载项。
重要
以下平台和应用程序支持等效的外接程序功能。 COM、VSTO 和 XLL 加载项不能安装在任何其他平台上,因此在这些平台上,将忽略本文稍后讨论的清单标记。
提示
目前,仅 Windows 加载项始终优先于 Office 加载项。 但预览版中对此功能进行了增强,可让你扭转此首选项,或让用户在仅限 Windows 的外接程序和 Office 加载项之间进行选择。 有关详细信息,请参阅 禁用仅 Windows 加载项的选项,而不是 (预览) 。
指定等效的仅限 Windows 的加载项
获取仅限 Windows 的加载项的 ID
在指定等效的仅限 Windows 的外接程序之前,必须先通过以下步骤标识其名称:
- 在安装了仅 Windows 加载项的任何计算机上打开 Windows 注册表编辑器。
- 转到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<Office application>\Addins 或 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\<Office application>\Addins,其中 <Office 应用程序>为 Excel、Outlook、PowerPoint 或 Word。 例如, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins。
- 复制与所需的仅限 Windows 的加载项关联的注册表项的名称。 请注意,名称区分大小写。
配置清单
重要
适用于 Excel、Outlook、PowerPoint 和 Word。
若要启用 Office 加载项与仅限 Windows 的加载项之间的兼容性,请使用在获取仅限 Windows 加载项的 ID 部分中获取的名称,在 Office 外接程序 清单 中标识等效 的仅限 Windows 的加载项。 然后,Windows 上的 Office 将使用仅限 Windows 的加载项,而不是 Office 加载项(如果两者都已安装)。 配置取决于正在使用的清单类型。
以下示例演示清单的一部分,该部分将仅限 Windows 的外接程序指定为等效的外接程序。 属性的值 "alternates.prefer.comAddin.progId" 标识仅限 Windows 的加载项。
注意
尽管 属性称为“comAddin”,但它实际上指的是任何仅限 Windows 的加载项,而不管加载项是 COM 还是 VSTO。 同样,术语“progId”通常仅与 COM 加载项相关联,但在清单中,它指的是仅 Windows 加载项的名称。
"extensions" [
...
"alternates" [
{
"prefer": {
"comAddin": {
"progId": "ContosoAddin"
}
}
}
]
]
提示
- 有关 COM 加载项和 XLL UDF 兼容性的信息,请参阅 使自定义函数与 XLL 用户定义函数兼容。 不适用于 Outlook。
- 如果无法在 Outlook Web 外接程序的清单中指定
alternates.prefer属性,则必须改为配置 组策略。 这仅适用于 Outlook。 有关指导,请参阅为 Outlook 加载项配置组策略设置。
提示
- 有关 XLL UDF 与包含自定义函数的 Excel 加载项兼容性的信息,请参阅 使自定义函数与 XLL 用户定义函数兼容。
- 仅对于 Outlook,计算机的管理员可以使用 组策略指定等效的仅限 Windows 的加载项。 有关指导,请参阅为 Outlook 加载项配置组策略设置。
为 Outlook 加载项配置组策略设置
在计算机上具有管理员权限的用户可以使用在计算机上安装其等效 COM 或 VSTO 加载项的停用 Outlook Web 加载项组策略设置,将仅 Windows 加载项配置为与 Outlook 加载项等效。 即使 Outlook 外接程序的清单没有等效的外接程序标记,也可以实现此目的。 然后,经典 Outlook on Windows 使用仅限 Windows 的加载项,而不是 Outlook 加载项(如果两者都已安装)。 下面是配置策略的步骤。
下载最新的 管理模板工具,并注意该工具的 安装说明。
打开“本地组策略编辑器”(gpedit.msc)。
导航到“用户配置>管理模板>”Microsoft“>Outlook 2016 Miscellaneous”。
选择设置 停用安装了等效 COM 或 VSTO 加载项的 Outlook Web 外接程序。
打开链接以编辑策略设置。
在要 停用的 Outlook Web 加载项对话框中:
- 将 “值名称 ”设置为 Outlook 外接程序清单的 ID。 在仅外接程序清单中,使用 元素的值
<ID>。 在统一清单中,使用清单根id目录中的 属性的值。 不要在条目周围添加大括号{}。 - 将 “值 ”设置为等效的仅限 Windows 的加载项的名称。 请参阅 获取仅限 Windows 的加载项的 ID 部分。
- 选择 “确定” ,使更新生效。
- 将 “值名称 ”设置为 Outlook 外接程序清单的 ID。 在仅外接程序清单中,使用 元素的值
用户的等效行为
指定等效的仅限 Windows 的加载项后,如果安装了等效的仅限 Windows 的加载项,则 Windows 上的 Office 将不会显示 Office 外接程序的用户界面 (UI) 。 但 Office 仅隐藏 Office 外接程序的功能区按钮,不会阻止安装。 因此,Office 加载项仍会显示在 UI 中的以下位置。
- 在 “我的加载项”下。
- 作为功能区管理器 (Excel 的条目,Word和 PowerPoint 仅) 。
注意
在清单中指定等效的仅限 Windows 的加载项对其他平台(如 Office web 版 或 Mac)没有任何影响。
以下方案描述了根据用户获取 Office 加载项的方式会发生什么情况。
Microsoft市场收购 Office 加载项
如果用户从Microsoft市场获取 Office 外接程序,并且已安装等效的仅限 Windows 的加载项,则 Office 将:
- 安装 Office 加载项。
- 隐藏功能区上的 Office 外接程序 UI。
- 为指出仅限 Windows 的加载项功能区按钮的用户显示标注。
Office 加载项的集中部署
如果管理员使用集中部署将 Office 加载项部署到其租户,并且已安装等效的仅限 Windows 的加载项,则用户必须先重启 Office,然后才能看到任何更改。 Office 重启后,它将:
- 安装 Office 加载项。
- 隐藏功能区上的 Office 外接程序 UI。
- 为指出仅限 Windows 的加载项功能区按钮的用户显示标注。
与嵌入式 Office 加载项共享的文档
如果用户安装了仅限 Windows 的加载项,然后获取包含嵌入式 Office 外接程序的共享文档,则当他们打开文档时,Office 将:
- 提示用户信任 Office 加载项。
- 如果受信任,将安装 Office 加载项。
- 隐藏功能区上的 Office 外接程序 UI。
其他仅限 Windows 的加载项行为
Excel、PowerPoint、Word
如果用户卸载等效的仅限 Windows 的加载项,则 Windows 上的 Office 将还原 Office 外接程序 UI。
为 Office 外接程序指定等效的仅限 Windows 的加载项后,Office 将停止处理 Office 外接程序的更新。 若要获取 Office 外接程序的最新更新,用户必须先卸载仅限 Windows 的加载项。
Outlook
在 Outlook 启动时,必须连接仅限 Windows 的加载项,才能禁用相应的 Outlook 加载项。
如果仅 Windows 加载项在后续 Outlook 会话期间断开连接,Outlook 加载项可能会一直处于禁用状态,直到重新启动 Outlook。
禁用仅限 Windows 的加载项的选项,而不是 (预览)
注意
本部分所述的功能目前为预览版,不应在生产加载项中使用。 它具有以下限制。
- 仅 Excel、PowerPoint 和 Word 支持它。
- 支持此功能的最低 Office 版本是 Windows 版本 2506 (内部版本 19029.20004)
- 使用此功能的加载项只能旁加载。 不能以任何其他方式发布它们。
使用清单标记指定在 Windows 计算机上是否应禁用和隐藏仅限 Windows 的加载项或 Office 加载项冲突,或者为安装 Office 外接程序的用户提供要使用的选项。
如果将清单配置为为用户提供选择,则用户在安装 Office 外接程序时会看到如下所示的对话框。 对话框中的 “了解详细信息 ”链接指向以下帮助页面,该页面提供信息以帮助用户做出决策: 解决 Office 外接程序的版本冲突。
如果用户选择 “是” ,并且 Office 成功禁用并隐藏仅限 Windows 的加载项,则会打开类似于以下内容的对话框,建议用户重启 Office 应用程序。
如果用户选择 “是” ,但 Office 出于任何原因无法禁用仅限 Windows 的加载项,则会打开类似于以下内容的对话框,建议用户手动禁用仅限 Windows 的加载项。
配置此功能的详细信息取决于 Office 外接程序使用的清单类型。
若要禁用仅限 Windows 的加载项而不是 Office 外接程序 (或让用户选择) ,请使用 alternates.hide.windowsExtensions 和 alternates.hide.windowsExtensions.effect 属性。 属性的两个 effect 可能值及其效果如下所示:
-
disableWithNotification:禁用和隐藏属性的子
comAddin.progIds数组中指定的所有仅限 Windows 的windowsExtensions加载项。 弹出对话框会通知用户发生这种情况。 -
userOptionToDisable:系统会提示用户选择是禁用和隐藏属性的子
comAddin.progIds数组中指定的仅限 Windows 的windowsExtensions加载项,还是禁用和隐藏 Office 外接程序。
注意
由于历史原因,名称 comAddin 中是字符串“com”。 在清单中, 属性引用 COM 或 VSTO 加载项。同样,术语“progIds”通常仅与 COM 加载项相关联,但 VSTO 外接程序的名称也可以包含在数组中 progIds 。
提示
若要强制启用仅限 Windows 的加载项,并在 Windows 计算机上禁用和隐藏 Office 外接程序,请使用 alternates.prefer 属性,如 配置清单中所述。
在以下示例中,系统将提示用户是禁用仅限 Windows 的加载项“ContosoAddin”还是禁用 Office 加载项。
"extensions" [
{
...
"alternates": [
{
"hide": {
"windowsExtensions": {
"effect": "userOptionToDisable",
"comAddin": {
"progIds": [
"ContosoAddin"
]
}
}
}
}
]
}
]