Outlook插件源码修改不生效,仅关机重启可解决求助
Office Roaming Settings URL拼接调试时代码不更新,仅关机重启生效的问题解决办法
问题场景
我通过Office.context.roamingSettings存储用户输入的URL,再与固定路径拼接,核心代码如下:
function UserAction() { var username = $('#username').val(); var password = $('#password').val(); var apiurl = Office.context.roamingSettings.get("userInput") + "TokenResource.svc/"; }
调试时发现拼接逻辑始终是旧代码,和当前源码完全不符。之前遇到类似问题,清理解决方案+Ctrl+F5就能修复,但这次没用。现在只有关机重启后修改才会生效,单纯重启系统都不行,每次改代码都要关机重启,效率极低。
可行解决办法
强制清除Office加载项缓存
Office加载项有独立的缓存目录,和项目解决方案缓存无关。手动删除缓存文件夹:- Windows路径:
%LOCALAPPDATA%\Microsoft\Office\16.0\Wef\
删除该目录下所有文件后,重启Office应用再调试项目。
- Windows路径:
禁用加载项的浏览器缓存
在加载项的HTML文件头部添加缓存禁用元标签,避免浏览器缓存旧脚本:<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" />调试时也可以打开浏览器开发者工具(F12),勾选「禁用缓存」选项。
检查Visual Studio部署设置
打开项目属性,确认「部署」选项卡中的「清除旧版本」已勾选,同时验证调试目标Office应用是否正确,避免残留旧部署文件。重置漫游设置缓存
有时漫游设置本身会缓存旧值,先执行以下代码清除旧存储:Office.context.roamingSettings.remove("userInput"); Office.context.roamingSettings.saveAsync();执行后重新设置URL,再测试拼接逻辑是否更新。
重启Office进程而非系统
之前单纯重启系统没用,可以尝试结束所有Office相关进程(比如WINWORD.EXE、EXCEL.EXE等),再重新启动调试,比关机重启更高效。
内容的提问来源于stack exchange,提问作者Pearl
相关产品推荐
相关产品推荐

