如何在没有尝试安装依赖项的情况下静默地从第三方执行innosetup安装程序?

时间:2013-05-20 22:31:18

标签: installer inno-setup

我有来自第三方的安装程序。通过反复试验,我发现它是一个固有的安装程序。当我使用/ silent标志调用它时,它安装得很好,直到它执行3个依赖项的安装程序(例如,直接X是一个),然后需要用户输入取消。我希望能够运行安装程序并让它以静默方式安装依赖项或根本不安装依赖项。正常情况下,通过安装程序GUI时,它会在向导的最后一页末尾给我3个复选框(在我点击“完成”按钮之前),这样我就可以选择是否安装依赖项。有没有办法做到这一点,我不知道?根据我的研究,如果不知道可用的类型和组件(并且使用/ help或/?选项执行安装程序没有效果)似乎是不可能的,我可能需要从第三方获得新的安装程序。我能想到的唯一另一个选择就是有一些超时,在安装程序停止一段时间之后,我终止了安装过程(因为我感兴趣的文件已安装在那一点上,我认为)。

3 个答案:

答案 0 :(得分:2)

完成页面上的复选框听起来像postinstall [Run]条目。除了原始安装程序作者可以选择为交互式安装与静默安装选择不同的选项集之外,无法从命令行影响这些选择。 (或者他们可能扩展了/LOADINF选项以使用这些选项,尽管这不太可能。)

鉴于这是第三方安装程序,最好的办法是联系原始供应商,看看是否可以让他们更改默认的静默选择,或添加额外的命令行参数来更改默认值。

如果不这样做,您可以考虑使用AutoIt等程序在非静默运行时自动点击向导GUI。

(如果它试图安装的东西确实是依赖项,那么你可能应该让它安装它们。而且它应该是无声地安装它们。)

在指定时间之后杀死安装过程似乎是一个很好的灾难配方。

答案 1 :(得分:1)

这些可能是InnoSetup安装中的[任务],您可以通过在命令行中传递/ tasks =“”(以及/ silent)来取消选择。以下是命令行选项列表:http://www.jrsoftware.org/ishelp/topic_setupcmdline.htm。添加/ suppressmsgbox也可能有所帮助。

答案 2 :(得分:0)

似乎不可能在不了解其设置结构的情况下做我想做的事情。然而,我在等待指定的时间(我从阅读this question获得)后杀死第三方安装程序,成功地解决了我的原始问题。