【发布时间】:2014-09-26 18:45:00
【问题描述】:
我已将 Inno Setup 配置为在运行安装程序时卸载以前的应用程序版本。但是,这意味着所有图标都将被删除。自然地,用户抱怨他们将我的程序固定到任务栏,但程序更新后图标消失了。有没有办法让安装程序固定图标,或者在更新前卸载旧版本时告诉保留主(桌面或开始菜单)图标?
使用以下代码调用卸载,因此那里没有太多自定义空间:
Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode)
【问题讨论】:
-
在安装新版本之前通常不需要卸载旧版本,这就是为什么没有原生支持这样做的原因。您的
UnInstallOldVersion()必须来自第 3 方#include ...文件。我不知道有什么办法可以告诉 Windows 你将把文件直接放回去,而不是像往常一样进行清理。 -
@Deanna:你应该在安装之前卸载,否则如果旧版本有一些新版本没有的文件,这个文件就会变得悬空并且永远不会被清理。
-
@Deanna:找到
UnInstallOldVersion的代码并添加到问题中。 -
如何将应用程序固定到我展示的任务栏,例如在
this post。但这是一种 hacky 方式,并且确定图标是否被固定也是 hacky。 -
"如果旧版本有一些新版本没有的文件,这个文件就会变得悬空,永远不会被清理。"这就是
[InstallDelete]的用途。卸载是为了完全卸载,而不是删除奇怪的文件。
标签: inno-setup