使 Office 加载项与现有 COM 或 VSTO 加载项兼容

如果你有现有的 COM 加载项或 VSTO 加载项,则可以在 Office Web 外接程序中生成几乎等效的功能,从而使解决方案能够在其他平台上运行,例如在 Office web 版 或 Mac 中运行。 在此方案中,这两个加载项称为“等效”,你可以使用 Office Web 外接程序的清单来控制 Windows 计算机上的用户可以使用哪个加载项 (或为用户提供) 选项。

注意

由于 COM 和 VSTO 加载项只能在 Windows 上安装,本文将 COM 和 VSTO 加载项统称为“仅限 Windows”加载项。

一般情况下,仅当满足以下条件时,加载项才应被视为等效项,但在某些情况下,不符合这些条件的加载项可被视为等效项。

  • 它们都由同一开发人员创建,通常是在统一清单的 属性中指定的 "developer" 实体,或者仅外接程序清单中的 ProviderName 元素。
  • 它们都设计为安装在同一个或多个 Office 应用程序上,并且主要处理功能重叠的相同工作负载。
  • 它们具有相同或高度相似的公共名称和用户界面,包括控件名称和图标。

重要

以下平台和应用程序支持等效的外接程序功能。 COM、VSTO 和 XLL 加载项不能安装在任何其他平台上,因此在这些平台上,将忽略本文稍后讨论的清单标记。

  • Windows (版本 1904 或更高版本的 Excel、Word和 PowerPoint)
  • 经典 Outlook on Windows (版本 2102 或更高版本) 支持的 Exchange 服务器版本
    • Exchange Online
    • Exchange Server订阅版 (SE)
    • Exchange 2019 累积更新 10 或更高版本 (KB5003612)
    • Exchange 2016 累积更新 21 或更高版本 (KB5003611)

重要

新的 Outlook on Windows 不支持 COM 和 VSTO 加载项。 经典 Outlook on Windows 桌面客户端仍支持这些加载项。 若要了解详细信息,请参阅 为 Windows 上的新 Outlook 开发 Outlook 加载项

由于仅限 Windows 的加载项和 Office 加载项的功能可能不完全相同,因此需要考虑三种方案。

获取仅限 Windows 的加载项的名称

在配置 Office 外接程序清单之前,必须先使用以下步骤在 Windows 注册表中标识仅限 Windows 的加载项的名称:

  1. 在安装了仅 Windows 加载项的任何计算机上打开 Windows 注册表编辑器。
  2. 转到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<Office application>\AddinsHKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\<Office application>\Addins,其中 <Office 应用程序>为 Excel、Outlook、PowerPoint 或 Word。 例如, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Excel\Addins
  3. 复制与所需的仅限 Windows 的加载项关联的注册表项的名称。 请注意,名称区分大小写。

隐藏 Office 加载项

你可以配置 Office 加载项,以便在用户的计算机上安装了等效的仅限 Windows 的加载项时,Windows 上的 Office 将运行仅限 Windows 的加载项,而不是 Office 加载项。 如果仅 Windows 加载项被卸载,Office 将在下次启动主机 Office 应用程序时自动激活 Office 加载项。 如果在 Office 外接程序 之后 安装了仅限 Windows 的加载项,则在重启 Office 应用程序时,Office 加载项将被隐藏。 有关详细信息,请参阅 Office 加载项隐藏时用户的行为

配置清单

重要

适用于 Excel、Outlook、PowerPoint 和 Word。

若要在 Office 外接程序和仅限 Windows 的外接程序之间启用兼容性,请使用在获取仅限 Windows 加载项的名称部分中获取的名称,在 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"
        }
      }
    }
  ]
]

提示

如果无法在 Outlook Web 外接程序的清单中指定 alternates.prefer 属性,则必须改为配置 组策略。 这仅适用于 Outlook。 有关指导,请参阅为 Outlook 加载项配置组策略设置

提示

为 Outlook 加载项配置组策略设置

在计算机上具有管理员权限的用户可以使用在计算机上安装其等效 COM 或 VSTO 加载项的停用 Outlook Web 加载项组策略设置,将仅 Windows 加载项配置为与 Outlook 加载项等效。 即使 Outlook 外接程序的清单没有等效的外接程序标记,也可以实现此目的。 然后,经典 Outlook on Windows 使用仅限 Windows 的加载项,而不是 Outlook 加载项(如果两者都已安装)。 下面是配置策略的步骤。

  1. 下载最新的 管理模板工具,并注意该工具的 安装说明

  2. 打开“本地组策略编辑器”(gpedit.msc)。

  3. 导航到“用户配置>管理模板>”Microsoft“>Outlook 2016 Miscellaneous”。

  4. 选择设置 停用安装了等效 COM 或 VSTO 加载项的 Outlook Web 外接程序

  5. 打开链接以编辑策略设置。

  6. 在要 停用的 Outlook Web 加载项对话框中:

    1. “值名称 ”设置为 Outlook 外接程序清单的 ID。 在仅外接程序清单中,使用 元素的值 <ID> 。 在统一清单中,使用清单根 id 目录中的 属性的值。 不要在条目周围添加大括号{}
    2. “值 ”设置为等效的仅限 Windows 的加载项的名称。 请参阅 获取仅限 Windows 的加载项的名称部分。
    3. 选择 “确定” ,使更新生效。

    “要停用的 Outlook Web 加载项”对话框。

隐藏 Office 加载项时用户的行为

指定等效的仅限 Windows 的加载项后,如果安装了等效的仅限 Windows 的加载项,则 Windows 上的 Office 将不会显示 Office 外接程序的用户界面 (UI) 。 但 Office 仅隐藏 Office 外接程序的功能区按钮,不会阻止安装。 因此,Office 加载项仍会显示在 UI 中的以下位置。

  • “我的加载项”下
  • 作为功能区管理器 (Excel 的条目,Word和 PowerPoint 仅) 。

注意

在清单中指定等效的仅限 Windows 的加载项对其他平台(如 Office web 版 或 Mac)没有任何影响。

以下方案描述了根据用户获取 Office 加载项的方式会发生什么情况。

Microsoft市场收购 Office 加载项

如果用户从Microsoft市场获取 Office 外接程序,并且已安装等效的仅限 Windows 的加载项,则 Office 将:

  1. 安装 Office 加载项。
  2. 隐藏功能区上的 Office 外接程序 UI。
  3. 为指出仅限 Windows 的加载项功能区按钮的用户显示标注。

Office 加载项的集中部署

如果管理员使用集中部署将 Office 加载项部署到其租户,并且已安装等效的仅限 Windows 的加载项,则用户必须先重启 Office,然后才能看到任何更改。 Office 重启后,它将:

  1. 安装 Office 加载项。
  2. 隐藏功能区上的 Office 外接程序 UI。
  3. 为指出仅限 Windows 的加载项功能区按钮的用户显示标注。

与 Office 外接程序嵌入式共享的文档

如果用户安装了仅限 Windows 的加载项,然后获取包含嵌入式 Office 外接程序的共享文档,则当他们打开文档时,Office 将:

  1. 提示用户信任 Office 加载项。
  2. 如果受信任,将安装 Office 加载项。
  3. 隐藏功能区上的 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) 订阅 Office。

配置清单

配置此功能的详细信息取决于 Office 外接程序使用的清单类型。

若要禁用仅限 Windows 的加载项,请执行以下步骤。

  1. 如果尚不存在,请创建属性 "extensions.alternates.hide.windowsExtensions"
  2. 将子 effect 属性添加到 属性, windowsExtensions 并将其值设置为 disableWithNotification
  3. 将子 "comAddin" 属性添加到 windowsExtensions 属性。
  4. 将子 progIds 数组属性添加到 comAddin 属性。
  5. 将要隐藏的所有仅限 Windows 的加载项的名称添加到数组中 progIds 。 有关如何获取这些名称的信息,请参阅 获取仅限 Windows 的加载项的名称

注意

由于历史原因,名称 comAddin 中是字符串“com”。 在清单中, 属性引用 COM 或 VSTO 加载项。同样,术语“progIds”通常仅与 COM 加载项相关联,但 VSTO 外接程序的名称也可以包含在数组中 progIds

以下示例显示了 JSON 的外观。

"extensions" [
  {   
    ...
    "alternates": [
      {
        "hide": {
          "windowsExtensions": {
            "effect": "disableWithNotification",
            "comAddin": {
              "progIds": [
                "ContosoAddin"
              ]
            }
          }
        }
      }
    ]
  }
]

仅 Windows 加载项隐藏时用户的行为

当仅 Windows 加载项处于隐藏状态时,如果安装了等效的 Office 外接程序,Windows 上的 Office 将不会显示其用户界面 (UI) 。 弹出对话框会通知用户发生这种情况。 但 Office 仅隐藏仅限 Windows 的加载项,不会阻止安装。

为用户提供要使用的加载项的选择

注意

本部分所述的选项具有以下限制。

  • 仅 Excel、PowerPoint 和 Word 支持它。
  • 支持此功能的最低 Office 版本是 Windows 版本 2506 (内部版本 19029.20004) 订阅 Office。

配置清单

配置此功能的详细信息取决于 Office 外接程序使用的清单类型。

若要让用户选择要隐藏的加载项,请执行以下步骤。

  1. 如果尚不存在,请创建属性 "extensions.alternates.hide.windowsExtensions"
  2. 将子 effect 属性添加到 属性, windowsExtensions 并将其值设置为 userOptionToDisable
  3. 将子 "comAddin" 属性添加到 windowsExtensions 属性。
  4. 将子 progIds 数组属性添加到 comAddin 属性。
  5. 将所有等效的仅限 Windows 的加载项的名称添加到数组。progIds 有关如何获取这些名称的信息,请参阅 获取仅限 Windows 的加载项的名称

注意

由于历史原因,名称 comAddin 中是字符串“com”。 在清单中, 属性引用 COM 或 VSTO 加载项。同样,术语“progIds”通常仅与 COM 加载项相关联,但 VSTO 外接程序的名称也可以包含在数组中 progIds

以下示例显示了 JSON 的外观。

"extensions" [
  {   
    ...
    "alternates": [
      {
        "hide": {
          "windowsExtensions": {
            "effect": "userOptionToDisable",
            "comAddin": {
              "progIds": [
                "ContosoAddin"
              ]
            }
          }
        }
      }
    ]
  }
]

当用户可以选择隐藏哪个加载项时的行为

如果将清单配置为为用户提供选择,则用户在安装 Office 外接程序时会看到如下所示的对话框。 对话框中的 “了解详细信息 ”链接指向以下帮助页面,该页面提供信息以帮助用户做出决策: 解决 Office 外接程序的版本冲突

标题为“Contoso JS 外接程序安装程序”的对话框。第一段指出,“Contoso JS 外接程序已识别出可能导致冲突的外接程序的以下旧版本:”。此段落下方是一个项目符号段落,上面写着“COM 加载项名称:Contoso”。下面是一段内容,上面写着'是否要禁用较旧的加载项版本? (如果选择“否”,在 Mac 上打开 Office 或 Office web 版.) “时,仍会收到新版本。下面是一个标记为“了解详细信息”的链接。下面是标记为“是”和“否”的两个按钮。

如果用户选择 “是” ,并且 Office 成功禁用并隐藏仅限 Windows 的加载项,则会打开类似于以下内容的对话框,建议用户重启 Office 应用程序。

标题为“旧版加载项已禁用”的对话框。第一段显示,“旧版加载项已成功禁用。下面一段指出,“为确保更改生效,我们建议重启此 Office 应用程序。可以在不重启的情况下继续,但某些更新在下次启动之前可能不会应用。下面是“确定”按钮。

如果用户选择 “是” ,但 Office 出于任何原因无法禁用仅限 Windows 的加载项,则会打开类似于以下内容的对话框,建议用户手动禁用仅限 Windows 的加载项。

标题为“请手动禁用加载项”的对话框。第一段说,“加载项的旧版本无法完全禁用。若要完成此过程,请在安装 COM 加载项的 Office 应用程序中手动禁用它。下面是标有“作方法”的说明。说明如下所示:'1.转到“文件”、“选项”、“加载项”。2. 在底部的“管理”下拉列表中,选择加载项类型,然后单击“转到”。3. 在对话框中,取消选中加载项以禁用它。4.重启应用以应用 (可选但建议) 更改。下面是“确定”按钮。

另请参阅