Office Add-In XML验证报错:webApplicationInfo元素无效问题求助
问题原因
你当前使用的Office Add-In Manifest命名空间是http://schemas.microsoft.com/office/appforoffice/1.1,但<webApplicationInfo>元素是在Office Add-In Schema 1.5及以上版本才新增的。1.1版本的Schema定义里根本没有这个元素,所以验证工具会报错,提示该位置应该是1.1版本支持的子元素(比如FormSettings)。
解决方案
更新Manifest的命名空间版本
打开你的manifest.xml文件,找到开头的<OfficeApp>标签,把命名空间从http://schemas.microsoft.com/office/appforoffice/1.1替换成1.5及以上版本,比如:<!-- 旧的命名空间 --> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...>改成:
<!-- 新的命名空间(1.5版本,兼容大部分现代Office) --> <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...>要是你的插件只需要支持最新Office版本,也可以用更高的版本(比如1.10),但1.5版本的兼容性最广。
确认
<webApplicationInfo>的位置
把<webApplicationInfo>放在<OfficeApp>的直接子元素层级,不要嵌套在其他标签里,正确结构示例:<OfficeApp ...> <Id>你的插件ID</Id> <Version>1.0.0.0</Version> <ProviderName>你的提供商名称</ProviderName> <!-- 其他必填元素 --> <webApplicationInfo> <id>myIdNumber</id> <resource>https://graph.microsoft.com</resource> <applicationPermissions>user.read, tasks.readwrite</applicationPermissions> </webApplicationInfo> </OfficeApp>重新验证
保存修改后的manifest,再次执行npm run validate,验证应该就能通过了。
额外提示
- 要是你需要兼容Office 2013这类旧版本,1.5版本的Schema不被支持,这种情况你没法用
<webApplicationInfo>,得换其他权限获取方式。 - Office 2016及以后的版本都支持1.5及以上的Schema版本,兼容性没问题。
内容的提问来源于stack exchange,提问作者Clemens Fischer
相关产品推荐
相关产品推荐

