如何为Office加载项manifest.xml添加多个Requirements Sets并解决验证报错
解决Office加载项多宿主Requirements Sets验证失败问题
问题背景
开发的Office加载项需支持Word、Excel、PowerPoint,且仅对Windows桌面版Office 2021及以上版本开放。尝试在清单中同时指定三个应用的Requirements Sets时,office-addin-manifest验证工具报错:
错误#1:无支持的Office产品:没有平台能满足清单中指定的要求。最常见原因是Requirements部分存在问题,请检查清单后重试
仅指定单个应用的Requirements Set时,清单验证可通过。
问题原因
直接在同一个<Requirements>节点下同时添加Word、Excel、PowerPoint各自的Requirements Sets,会让验证工具判定为「需要某一个平台同时满足三个应用的Requirements条件」,但实际上三个应用的Requirements Set是各自独立对应自身产品的,这种写法不符合清单的逻辑规则,导致工具无法识别到交叉支持的场景。
解决方案
方案1:使用通用OfficeApi Requirements Set(推荐)
Office 2021对应的通用OfficeApi版本为1.13,该版本覆盖了Word、Excel、PowerPoint的Windows桌面版要求,只需在清单中指定通用Set即可:
- 声明支持的宿主:
<Hosts> <Host Name="Document"/> <!-- Word --> <Host Name="Workbook"/> <!-- Excel --> <Host Name="Presentation"/> <!-- PowerPoint --> </Hosts>
- 配置Requirements:
<Requirements> <Sets DefaultMinVersion="1.13"> <Set Name="OfficeApi" MinVersion="1.13"/> </Sets> </Requirements>
方案2:通过VersionOverrides细分宿主要求
如果需要对每个应用指定更精准的Requirements Set,可以在VersionOverrides中为每个宿主单独配置:
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0"> <Hosts> <Host xsi:type="Document"> <Requirements> <Sets DefaultMinVersion="1.13"> <Set Name="WordApi" MinVersion="1.13"/> </Sets> </Requirements> <!-- 其他Word相关配置 --> </Host> <Host xsi:type="Workbook"> <Requirements> <Sets DefaultMinVersion="1.13"> <Set Name="ExcelApi" MinVersion="1.13"/> </Sets> </Requirements> <!-- 其他Excel相关配置 --> </Host> <Host xsi:type="Presentation"> <Requirements> <Sets DefaultMinVersion="1.13"> <Set Name="PowerPointApi" MinVersion="1.13"/> </Sets> </Requirements> <!-- 其他PowerPoint相关配置 --> </Host> </Hosts> </VersionOverrides>
验证修改
修改完成后,运行以下命令验证清单:
office-addin-manifest validate your-addin-manifest.xml
验证通过后,该加载项将仅对Windows桌面版Office 2021及以上版本开放,同时支持三个应用宿主。
内容的提问来源于stack exchange,提问作者Emmanuel PC
相关产品推荐
相关产品推荐

