You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何排查Windows 10中Electron后台进程被系统终止的原因?

Office 16 Click-to-Run升级是否会终止占用共享DLL的进程?

你遇到的这个情况确实和Office Click-to-Run(简称C2R)的升级或维护操作高度相关,下面我来拆解具体原因和应对思路:

核心原因:共享DLL文件的冲突

  • Office C2R是Office的流式安装与更新机制,它依赖系统级的VC++运行时库(比如你日志里提到的msvcp140.dll)。当C2R执行升级、修复或者许可证验证操作时,需要替换或更新这些共享DLL文件。
  • 在Windows系统中,正在被进程占用的DLL文件无法直接替换。所以C2R在这种场景下,会尝试强制终止占用该DLL的进程,以此来完成文件更新——这就是你的Electron应用进程被不定期终止的关键原因。

验证推测的方法

  • 关联时间线:打开事件查看器,导航到Applications and Services Logs > Microsoft > Office > ClickToRun,查看Office C2R相关的操作日志,对比你的进程被终止的时间点,确认两者是否完全吻合。
  • 检查定时任务:打开Windows任务计划程序,查找名为Office Automatic Updates 2.0之类的任务,查看这些任务的触发时间是否和进程终止时间对应。

可行的解决方案

  • 打包本地VC++运行时库:Electron应用可以通过打包本地副本的方式,避免依赖系统全局的msvcp140.dll。在构建应用时,配置将VC++运行时的相关DLL文件包含在应用目录中,这样你的进程会优先加载本地版本,不再占用系统全局DLL,也就不会和Office C2R的操作冲突了。
  • 调整Office自动更新时间:如果你的应用需要在特定时段稳定运行,可以指导用户修改Office自动更新的时间窗口,避开应用的核心运行时段。具体操作是打开任意Office应用(如Word),进入文件 > 账户 > 更新选项 > 更改更新设置,设置合适的更新时间。
  • 尝试Restart Manager配置(进阶):虽然没有官方直接的豁免机制,但你可以修改应用的manifest文件,配置让Windows的Restart Manager在遇到进程占用时,优先尝试重启而非强制终止进程。不过这个方法对Electron应用来说配置稍复杂,建议优先尝试前两个方案。

内容的提问来源于stack exchange,提问作者Arun Krishnan

火山引擎 最新活动