我的公司正在开发一个依赖于我们其他应用程序的应用程序。第二个应用程序已经有Inno Setup安装程序。
所以我想我想在第一个应用程序的Inno Setup安装程序中捆绑第二个应用程序的安装程序。但我不确定如何正确地做到这一点。有谁知道这样做的“正确方法”?
我发现了这个:Inno Setup Knowledge Base—HOWTO: Install .MSI files。我假设该技术可用于嵌套的Inno Setup安装程序。但我对细节有几个问题:
答案 0 :(得分: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
。