Inno setup 在Inno安装程序中卸载旧版本并安装新版本

Inno setup 在Inno安装程序中卸载旧版本并安装新版本,inno-setup,Inno Setup,我正在尝试创建一个安装程序来检查是否安装了旧版本的软件。如果是,它将卸载旧版本,并通过保留旧版本的所有参数(路径等)静默安装新版本 我可以通过以下命令检查旧版本: RegQueryStringValue(HKEY\U本地\u计算机,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\mySoftware','DisplayVersion',pVersion) 并通过以下方式卸载旧版本: ShellExec(“”,ExpandConstant(

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

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

RegQueryStringValue(HKEY\U本地\u计算机,'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\mySoftware','DisplayVersion',pVersion)

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

ShellExec(“”,ExpandConstant(),“”/VerySILENT/NORESTART/suppressMsgBox’,“”,SW_Hide,ewNoWait,ErrorCode)


但是我无法以静默方式安装新版本。

如果您确实确定需要在安装之前卸载已安装的版本,则可以使用,它使Inno安装程序能够检查是否安装了软件包,并在继续安装之前可能卸载该软件包。UnInsIS.dll是开源的。

正如我在Inno安装讨论组中提到的:您可以将
/silent
/verysilent
参数传递给您的安装程序,以免提运行。请提供示例代码或链接为什么必须卸载旧版本?为什么不运行最新的安装程序来升级现有的安装程序呢?