如何在多Office会话中保留Office应用自定义选项卡?
解决Office JS加载项自定义选项卡跨会话持久化的问题
这是旁加载Office加载项时非常常见的痛点,我来帮你梳理下核心原因和可行的解决办法:
1. 先明确旁加载的「临时」vs「持久」差异
默认情况下,如果你是通过「插入/我的加载项」手动上传本地manifest文件来旁加载,Office会把这个加载项标记为临时会话加载——意思就是只在当前Office进程生效,重启后就会被清除。要实现持久化,得换一种旁加载方式,让Office把加载项识别为「需要保留的可信加载项」。
2. 调整旁加载的manifest来源
Windows系统
- 把你的manifest文件放到本地共享文件夹(比如创建一个
C:\OfficeAddins文件夹,右键设置为共享,权限设为Everyone可读),然后通过「插入/我的加载项」>「共享文件夹」来添加这个加载项。这种方式下,Office会把加载项视为可信的持久化加载项,重启后会自动加载。 - 如果你用VS Code或Visual Studio开发,确保启动调试时用的是HTTPS本地服务器(比如
https://localhost:3000/manifest.xml),而不是本地文件路径。HTTPS来源的manifest会被Office优先保留。
Mac系统
Mac对旁加载的持久化有特定的文件夹要求:
- 找到对应Office应用的manifest目录,比如Word的路径是
~/Library/Containers/com.microsoft.Word/Data/Documents/WeF/Manifests/ - 把你的manifest文件复制到这个目录下,重启Office后,加载项就会自动被识别并加载,自定义选项卡也会保留。
3. 检查Manifest的关键配置
- 确保
<Id>标签的GUID是固定不变的:如果每次修改manifest都重新生成新的GUID,Office会把它当成全新的加载项,自然不会保留之前的启用状态。 - 确认
<Hosts>标签包含了你要适配的Office应用(比如<Host Name="Word" />或<Host Name="Excel" />),避免因为宿主不匹配导致加载失败。 - 权限设置:
<Permissions>标签至少设为ReadWriteDocument(不需要更高权限,但过低的权限可能影响持久化逻辑)。
4. 手动设置加载项为「始终启用」
有时候Office会默认禁用未验证的加载项,你可以手动强制启用:
- 打开Office应用,点击「文件」>「选项」>「加载项」
- 在底部「管理」下拉菜单选择「Office加载项」,点击「转到」
- 找到你的加载项,确保它处于勾选状态;如果它出现在「禁用项目」列表里,选中后点击「启用」
- 部分版本的Office还支持右键加载项,选择「始终启用」,确保重启后不会被自动禁用。
5. 进阶方案:使用测试部署(可选)
如果上面的方法都没解决问题,可以通过Office Developer Dashboard创建测试部署:把你的加载项分发给自己的微软账户,这样加载项会出现在「我的加载项」的「我的组织」列表里,属于经过验证的加载项,重启Office后一定会自动加载,自定义选项卡也能稳定保留。
内容的提问来源于stack exchange,提问作者user1570697
相关产品推荐
相关产品推荐

