我正在使用Inno Setup来创建安装程序。我希望安装程序自动卸载以前安装的版本,而不是覆盖它。我怎样才能做到这一点?
3 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
在给定AppId(即您AppID
在[Setup]
-section中使用的值)时,您应该能够从注册表中读取卸载字符串。它可以在下面找到Software\Microsoft\Windows\CurrentVersion\Uninstall\{AppId}\
(可以是HKLM
或者HKCU
,最好检查两者){AppId}
应该用你使用的实际值代替。查找UninstallString
或QuietUninstallString
值并使用该Exec
函数从InitializeSetup()
事件函数运行它。
更新:使用[Run]
-section条目删除了非工作替代解决方案{uninstallexe}
- 感谢所有指出这一点的评论者!
临摹微笑
TA贡献1982条经验 获得超2个赞
如果您“只想删除旧图标”(因为您的图标已更改/更新),您可以使用:
; attempt to remove previous versions' icons
[InstallDelete]
Type: filesandordirs; Name: {group}\*;
这是在“安装开始时”运行,所以基本上删除旧图标,完成后仍然会在那里安装新图标。
我只是在每次安装时执行此操作“万一有任何改变”图标明智(无论如何都会重新安装)。
- 3 回答
- 0 关注
- 2009 浏览
添加回答
举报
0/150
提交
取消