InnoSetup:检查应用程序的最旧版本并显示信息消息

时间:2010-05-17 08:53:22

标签: installer installation inno-setup

如何在安装新版本的过程中检查是否安装了最旧版本的应用程序?我的意思是什么?我想在开始安装启动检查过程之前用对话框“请等待”,如果我的安装发现旧版本我可以提供对话框“更新或删除旧安装新”。 我该怎么做? 感谢。

1 个答案:

答案 0 :(得分:3)

我不确定这是否可以完成,因为运行InnoSetup-setup总是假定您要安装新的或更新现有安装。我不认为您可以根据用户的选择将设置从“安装模式”切换到“卸载模式”。

InnoSetup在这一点上的工作方式与Windows Installer不同。它有一个单独的安装程序和卸载程序,而不是Windows Installer,它“包含两者”。

如果您想要该功能,您可能需要查看Windows Installer XML(WiX),它会创建MSI设置,并且可以完全按照您的要求进行操作。

修改
首先,感谢为downvote。我不太清楚为什么有人会给出一个完全合理的回复,但我想我必须应付它。

回答有关BeforeInstall的评论:如果您阅读文档,则会注意到在安装项目之前调用了BeforeInstall 。从文档引用:

  

在安装条目之前要调用一次的函数的名称

你想做什么归结为:

  1. 决定用户是否应该能够在安装运行时选择是否要安装或卸载
  2. 根据用户的选择安装或卸载
  3. 我想说的是,据我所知,您无法从安装脚本切换到安装模式(运行setup.exe)到卸载模式(运行uninstall.exe)。

    InnoSetup假设运行Setup.exe相当于想要安装或升级。我是用户想要卸载的,他会运行卸载程序,而不是安装程序。