Outlook add-in:通过VS Code发布更新后客户端版本不生效问题
Outlook 加载项部署后客户端加载旧版本问题原因汇总
1. Office 客户端静态资源强缓存
- Outlook 桌面端、网页端默认会对加载项的HTML、JS、CSS等静态资源做最长7天的强缓存,本地测试时通常会开启开发者模式禁用缓存、或频繁清理缓存,因此可以正常加载新版本,而日常使用的客户端会直接命中本地缓存,不会向服务器发起资源请求。
- 解决方案:打包静态资源时给文件名添加内容哈希后缀(如
app.2f9d10.js),或在Azure存储账户的静态网站配置中给资源添加Cache-Control: no-cache响应头,强制客户端每次请求时校验资源是否更新。
2. Azure 存储账户缓存配置问题
- 若存储账户的Blob服务默认配置了缓存规则,或部署时未正确覆盖旧文件,即便你本地上传了新版本资源,存储账户返回给客户端的依然是旧版本缓存内容。
- 排查方式:进入Azure存储账户对应的静态网站容器,核对对应资源的
Last-Modified时间是否和部署时间一致,部署前手动清空容器内旧资源再上传新文件,避免增量部署遗漏。
3. 加载项清单缓存
- Outlook 会缓存已安装加载项的manifest文件,即便你重新提供了新版
manifest.prod.xml,客户端依然会优先读取本地缓存的旧清单配置。 - 清理方式:
- Windows 桌面端:删除路径
%LOCALAPPDATA%\Microsoft\Office\16.0\Wef下的所有文件,重启Outlook即可 - Mac 桌面端:删除路径
~/Library/Containers/com.microsoft.Outlook/Data/Library/Caches/Microsoft/Office/16.0/Wef下的所有内容,重启Outlook即可
- Windows 桌面端:删除路径
4. 路径配置不匹配
- 确认你部署资源的Azure存储静态网站路径,和manifest文件中
SourceLocation字段配置的访问路径完全一致,避免出现部署到子目录但清单指向根目录、或路径大小写不匹配的问题,导致客户端始终拉取旧路径下的资源。
内容的提问来源于stack exchange,提问作者Rogério Ferreira de Melo
相关产品推荐
相关产品推荐

