在Inno Setup安装中运行另一个安装程序

问题描述:

我的公司正在开发一个应用程序,它依赖于我们的另一个应用程序。第二个应用程序已经有一个Inno Setup安装程序。在Inno Setup安装中运行另一个安装程序

所以我想我想在第一个应用程序的Inno Setup安装程序中捆绑第二个应用程序的安装程序。但我不确定如何正确处理。有没有人知道这样做的“正确方法”?

我发现这个:Inno Setup Knowledge Base—HOWTO: Install .MSI files。我认为这项技术可以用于嵌套的Inno Setup安装程序。但我有几个关于细节的问题:

  1. 我怎么能这样做,如果第一个应用程序被卸载,第二个也被卸载?
  2. 这是一个明智的做法(自动卸载​​第二个应用程序),还是应该让用户手动执行该操作?
  3. 如果用户试图在卸载第一个应用程序时卸载第二个应用程序,是否应该以某种方式检测到并发出警告?我怎么能这样做?

对于您所说的卸载程序功能级别,我建议您熟悉Inno Setup中的pascal脚本(如果您还没有)。它提供了令人难以置信的定制,但有一个让您的项目更加复杂的警告。

要先回答您的第三个问题:

是的,您应该这样做。为了正确执行此操作,您需要将此功能添加到第二个应用程序的卸载程序(即您的应用程序依赖的应用程序)。请参阅Inno Setup帮助中的Uninstall event functions。如果安装了应用程序,则需要检入该卸载程序(例如,通过检查是否存在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName),并在这种情况下显示额外的警告。

至于你的第二个问题:

如果是远程可能是您的客户希望继续使用第二类应用,即使他决定他想要卸载第一个,你应该给他的选择。在卸载应用程序后,我会在卸载程序中为您的应用程序提供单独的向导页面。

最后,你的第一个问题:

您需要确定的其他应用程序的卸载程序 exe文件名称(完整路径)。您可以从注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\SecondAppName\UninstallString中检索它。要从[CODE]部分的脚本执行它,请参阅Inno Setup帮助中的Exec

+1

分享一些代码! – tmighty 2013-09-09 00:21:56