Repository navigation
自动更新卡在「请勿重复启动」:安装目录被第三方进程占用时无提示、无重试(MoveFileExW error 32) #12489
F869494458
started this conversation in
General
Replies: 1 comment
|
刚刚ds写的,我补一句,tmd**搜狗,当然最简单解决方案是手动点新的安装包,给dsh随便装个别的地方就行,只要不是原目录就没问题,但是很烦,我选择给他杀掉,虽然杀掉不难,但是排查浪费了几分钟 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
E:\deepseek(非系统盘)现象
安装器日志(
%LOCALAPPDATA%\@deepseek-aidsh-desktop-updater\installer-logs\directory-failure-*.log):根因
安装器通过「整目录改名」来替换应用:
E:\deepseek→E:\deepseek.old-{GUID}。只要有任意进程在该目录内持有文件句柄或把该目录当作当前工作目录,MoveFileExW就会失败并重试 10 次,然后放弃。本次的持有者是第三方程序:搜狗输入法的云服务组件
E:\SogouInput\16.10.0.6009\SogouCloud.exe(安装在E:\SogouInput,会周期性扫描相邻目录)。用资源监视器的「关联的句柄」定位到它持有E:\deepseek的目录句柄;结束该进程后更新立即成功。也就是说:问题不在 DSH 本身,而是"整目录改名"这个更新策略对第三方占用零容忍,且失败后不告诉用户是谁占用、也不给重试入口。
建议(任选)
MoveFileExW的 error 32 后,提示「安装目录被以下进程占用」并列出候选(可通过对比目录内文件句柄或Restart ManagerAPI 得到),而不是只留一句「请勿重复启动」。补充
被占用期间,应用本身仍在旧版本正常运行,数据(
~/.dsh)未受影响;手动结束占用进程后,更新与重启均正常,版本已到 0.2.2-rc.1。All reactions