开发适用于 Office 中的 COM、VSTO 和 VBA 加载项的最佳做法

如果要为 办公室 开发 COM、VSTO 或 VBA 外接程序,请按照本文中所述的开发最佳做法进行操作。 这有助于确保:

  • 加载项在不同版本和办公室部署之间的兼容性。
  • 减少了用户和 IT 管理员的外接程序部署的复杂性。
  • 外接程序的意外安装或运行时失败不会发生。

注意:不支持使用桌面桥为 Windows 应用商店准备 COM、VSTO 或 VBA 加载项。 COM、VSTO 和 VBA 加载项不能在 Windows 应用商店或 办公室 应用商店中分发。

安装过程中不要为办公室检查

建议不要让加载项检测在外接程序安装过程中是否安装了办公室。 如果未安装办公室,则可以安装外接程序,并且安装办公室后,用户可以访问它。

使用嵌入式互操作类型 (NoPIA)

如果解决方案使用 .NET 4.0 或更高版本,请使用嵌入式互操作类型(NoPIA),而不是依赖于办公室主互操作程序集(PIA)可再发行组件。 使用类型嵌入可减少解决方案的安装大小,并确保将来的兼容性。 办公室 2010 是提供 PIA 可再发行版本的办公室的最后一个版本。 有关详细信息,请参阅演练:嵌入来自Microsoft 办公室程序集类型等价和嵌入式互操作类型的类型信息。

如果解决方案使用早期版本的 .NET,建议将解决方案更新为使用 .NET 4.0 或更高版本。 使用 .NET 4.0 或更高版本可减少较新版本的 Windows 上的运行时先决条件。

避免依赖于特定办公室版本

如果解决方案使用的功能仅在较新版本的办公室中可用,请在运行时(例如,使用异常处理或检查版本)验证该功能是否存在(如果可能,在功能级别)。 使用对象模型中支持的 API(例如 Application.Version 属性)验证最低版本,而不是特定版本。 不建议依赖办公室二进制元数据、安装路径或注册表项,因为这些元数据、环境和版本之间可能会发生更改。

启用 32 位和 64 位办公室使用情况

默认生成目标应同时支持 32 位 (x86) 和 64 位 (x64),除非解决方案依赖于仅适用于特定位的库。 办公室的 64 位版本在采用方面正在增加,尤其是在大数据环境中。 支持 32 位和 64 位可让用户更轻松地在 32 位和 64 位版本的办公室之间进行转换。

编写 VBA 代码时,请使用 64 位安全声明语句并根据需要转换变量。 此外,通过为每个位提供代码,确保在运行 32 位或 64 位版本的办公室的用户之间共享文档。 有关详细信息,请参阅 64 位 Visual Basic for Applications 概述

支持受限环境

解决方案不应要求用户帐户提升或管理员管理员权限。 此外,解决方案不应依赖于设置或更改:

  • 当前工作目录。
  • DLL 加载目录。
  • PATH 变量。

更改共享数据和设置的保存位置

如果解决方案由加载项和办公室外部的进程组成,请不要使用用户的应用程序数据文件夹或注册表在外接程序与外部进程之间交换数据或设置。 相反,请考虑使用用户的临时文件夹、文档文件夹或解决方案的安装目录。

每次更新时递增版本号

在解决方案中设置二进制文件的版本号,并在每次更新时递增。 这样,用户便能够更轻松地识别版本之间的更改并评估兼容性。

为最新版本的办公室提供支持语句

客户要求 ISV 为其在 办公室 中运行的 COM、VSTO 和 VBA 加载项提供支持声明。 列出显式支持声明可帮助客户使用 Microsoft 365 企业就绪性应用工具了解你的支持。

若要为办公室客户端应用程序(例如 Word 或 Excel)提供支持语句,请首先验证外接程序是否在当前办公室版本中运行,然后在外接程序在未来版本中中断时提交提供更新。 Microsoft 发布新版本或更新办公室时,无需测试加载项。 Microsoft 很少在 办公室 中更改 COM、VSTO 和 VBA 扩展性平台,这些更改将得到很好的记录。

重要说明:Microsoft 维护一系列受支持的加载项,用于准备报告和 ISV 联系信息。 若要列出加载项,请参阅 /configmgr/desktop-analytics/ready-for-windows

使用进程监视器帮助调试安装或加载问题

如果加载项在安装或加载过程中出现兼容性问题,则它们可能与文件或注册表访问问题有关。 使用 进程监视器 或类似的调试工具记录和比较与工作环境的行为,以帮助识别问题。