【问题标题】:How to execute innosetup installer from third party silently and without it attempting to install dependencies?如何从第三方静默执行 innosetup 安装程序,而不尝试安装依赖项?
【发布时间】:2013-05-20 22:31:18
【问题描述】:

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

【问题讨论】:

    标签: installation inno-setup


    【解决方案1】:

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

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

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

    (如果它试图安装的东西确实是依赖项,那么你可能应该让它安装它们。无论如何它也应该静默安装它们。)

    在指定时间后终止安装进程似乎是灾难的绝妙方法。

    【讨论】:

    • 从安全的角度来看,我认为不允许安装自动点击选项。考虑到所有因素,超时后终止进程是可用的最快选项。否则最好的解决方案就是让我自己制作安装程序。从第三方获取新的安装程序绝对是不可能的。
    【解决方案2】:

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

    【讨论】:

    • 不幸的是,这不起作用,但感谢您的建议。我认为我唯一的选择是从安装的文件构建我自己的自定义安装程序,或者在特定时间终止安装程序进程。
    【解决方案3】:

    如果不进一步了解他们的设置结构,似乎不可能做我想做的事。然而,我在等待指定的时间后(我从阅读this question 得到)终止了第三方安装程序,成功地解决了我最初的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-01
      相关资源
      最近更新 更多