Inno Setup非常安静的卸载选项是否会删除共享文件?

问题描述

Inno Setup 提供的 /VERYSILENT 选项在使用集中式软件将应用程序部署到整个组织时非常有用,但有一些好处我并不完全清楚。

特别是,在删除需要注销并标记为共享对象的 dll/com 控件(在卸载期间)时,它的行为如何?如果没有 /VERYSILENT 开关,则会显示一个弹出窗口,允许用户选择是否应删除这些对象。

是否使用了认选项(“是”,意思是“删除对象”)?

解决方法

是的,sharedfile 文件会在静默和非常静默的卸载中删除:

2021-01-04 11:42:56.253 日志已打开。 (时区:UTC+01:00)
2021-01-04 11:42:56.253 安装版本:Inno Setup 版本 6.1.2
...
2021-01-04 11:42:56.253 卸载命令行:/SECONDPHASE="C:\Program Files (x86)\My Program\unins000.exe" /FIRSTPHASEWND=$530FFA /INITPROCWND=$461118 /log="B:\ sharedo\uninstall.log"/verysilent
...
2021-01-04 11:42:56.284 开始卸载过程。
2021-01-04 11:42:56.285 递减共享计数(32 位):C:\Program Files (x86)\My Program\MyDll.dll
2021-01-04 11:42:56.285 共享计数达到零。
2021-01-04 11:42:56.416 正在删除文件:C:\Program Files (x86)\My Program\MyDll.dll
2021-01-04 11:42:56.416 删除目录:C:\Program Files (x86)\My Program
2021-01-04 11:42:56.955 删除目录:C:\Program Files (x86)\My Program
2021-01-04 11:42:56.986 卸载过程成功。
2021-01-04 11:42:56.986 全部删除?是的
2021-01-04 11:42:56.986 需要重新启动 Windows?没有
2021-01-04 11:42:56.988 日志已关闭。


同时检查 TExtUninstallLog.ShouldRemoveSharedFile function in Inno Setup source code