Repository navigation
Replies: 1 comment 2 replies
|
可以找到0.2.2-rc.2版本的更新包,然后结束dsh进程后,使用安装包更新。 |
2 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.
环境
版本:DSH Desktop 0.2.2-rc.1 → 目标 0.2.2-rc.2
系统:Windows 11 x64(build 10.0.26200)
安装方式:per-user(pending/update-info.json 中 isAdminRightsRequired: false)
安装路径:D:\DSH-app\新建文件夹(非默认路径,目录名含中文)
现象
应用内提示"新版本:0.2.2-rc.2",点击"下载新版本"
安装包下载正常完成(约 299.7 MB,sha512 已记录于 update-info.json),应用自动退出
之后无任何安装界面、无错误提示,更新未发生
手动重新打开应用,版本仍为 0.2.2-rc.1,"新版本:0.2.2-rc.2"入口再次出现,可再次点击并重复同样流程
2026-11-12 16:33:50 与 16:36:23 两次尝试均同样失败(installer-logs 目录中留下两份日志)
安装器日志
位置:%LOCALAPPDATA%@deepseek-aidsh-desktop-updater\installer-logs\
代码块
Operation: MoveFileExW
Windows error: 32 (另一个程序正在使用此文件,进程无法访问。)
Source: D:\DSH-app\新建文件夹
Destination: D:\DSH-app\新建文件夹.old-{F07B4A75-1B61-4A0B-9A40-07FF7A9AA98F}
Restoration error: 0
Time: 2026-11-12 16:33:50
Windows: 10.0.26200
Attempts: backup ×10,均返回 Windows error 32
(第二份日志 16:36:23,仅 GUID 与时间不同,内容一致)
初步分析
NSIS 目录交换阶段需要把整个安装目录改名为 *.old-{GUID},但该目录仍被其他进程占用(ERROR_SHARING_VIOLATION),重试 10 次后放弃并回滚(Restoration error: 0,回滚成功)。怀疑:
应用主进程退出后仍有子进程/伴随进程(node 运行时、终端会话、托盘/气泡窗口等)持有安装目录内的句柄;或
资源管理器窗口停留在安装目录、杀毒软件实时扫描等外部占用。
期望改进
安装前检测并列出占用安装目录的进程,给出明确提示,而不是静默失败
MoveFileExW 失败时带退避重试,最终失败时在界面呈现可读错误
触发安装前确保主进程的全部子进程/伴随进程已终止(或将其工作目录迁移出安装目录)
安装失败后重启应用时,更新入口应提示"上次安装未完成"并支持断点恢复
All reactions