在Inno Setup中卸载旧版本并安装新版本



我正在尝试创建一个安装程序,检查是否安装了旧版本的软件。如果是,它将卸载旧版本,并通过保留旧版本的所有参数(路径等(来静默安装新版本

我可以通过以下命令检查旧版本:

RegQueryStringValue(HKEY_LOCAL_MACHINE,'SOFTWAREMicrosoftWindowsCurrentVersionUninstallmySoftware','DisplayVersion',pVersion)

并通过以下方式卸载旧版本:

ShellExec('', ExpandConstant(<uninstall exe path>),'/VerySILENT /NORESTART /SUPPRESSMSGBOXES', '', SW_Hide, ewNoWait, ErrorCode)

但是我无法安静地安装新版本。

如果确实确定在安装之前需要执行已安装版本的卸载,则可以使用UnInsIS.dll,它为Inno Setup安装程序提供了检查软件包是否已安装并可能在继续安装之前将其卸载的能力。UnInsIS.dll是开源的。

最新更新