Outlook Web加载项导入Excel Web时清单无效问题排查求助
先查宿主兼容性:你做的是Outlook加载项,清单里的
Hosts节点大概率只写了Mailbox,但Excel对应的宿主是Workbook。要是想在Excel里测试,得在Hosts里加上<Host Name="Workbook"/>,不然Excel直接判定清单不合法。细查XML语法和规则:虽然
npm run validate过了,但Office Web端的验证比本地工具严得多,重点盯这几点:- 所有必填项有没有漏写,比如
Id、Version、ProviderName这些核心字段 SourceLocation必须是HTTPS地址,本地开发可能用HTTP,但Office Web端不认,哪怕本地测试也得配HTTPS代理- 清单的命名空间要正确,别写错成旧版本或者其他宿主的命名空间,比如Outlook常用的是
http://schemas.microsoft.com/office/appforoffice/1.1
- 所有必填项有没有漏写,比如
确认本地HTTPS证书有效性:本地运行正常不代表证书能被Office Web端信任,要是用的自签名证书,得先把证书加到系统信任列表里,不然导入时会因为证书问题触发验证错误。
检查权限声明是否匹配:Outlook加载项的权限(比如
ReadWriteMailbox)和Excel的(比如ReadWriteDocument)不一样,清单里的Permissions节点得对应Excel的要求,不匹配也会报错。部署到Azure后再测:本地环境和Azure的域名、证书、CORS配置都不一样,把Web UI部署到Azure后,更新清单里的
SourceLocation为Azure的HTTPS地址,再导入测试,说不定能解决本地特有的问题。用官方验证工具再扫一遍:别只依赖
npm run validate,用Office官方的office-addin-validator命令行工具再验证一次,它会模拟Office Web端的校验逻辑,能揪出本地工具没发现的问题,直接用npm install -g office-addin-validator安装后,运行office-addin-validator your-manifest.xml就行。
内容的提问来源于stack exchange,提问作者user19568803

