【问题标题】:Run sub-installer (very) silently when the master installer is running (very) silently当主安装程序(非常)静默运行时,子安装程序(非常)静默运行
【发布时间】:2016-07-13 15:42:06
【问题描述】:

我有一个 Inno Script istaller 在其中运行子 setup.exe。当静默安装参数提供给主安装程序时,我必须将静默安装参数提供给setup.exe。

Inno Script 运行命令:

[Run]
Filename: "setup.exe"; Parameters:"/Install silent"; Flags: nowait

我在命令提示符中给出了静默安装参数如下,

"setup location" /VERYSILENT /Install silent

主 Inno Setup 安装程序正在静默运行,但子 setup.exe 使用 UI 启动。

如何从 Inno Setup 脚本文件中的命令提示符获取静默安装参数?请帮我解决这个问题。

【问题讨论】:

  • 是否要静默运行子安装程序,仅当父安装程序静默运行时?还是一直?
  • @MartinPrikryl,是的,我想静默运行子安装程序,同时在命令提示符下为 inno setup 提供 verysilent 参数。在上面,为我的子安装程序提供了静默安装参数,但显示了 UI。如果直接作为第一个代码 sn-p 给出它可以工作。请建议我“如何从命令提示符获取参数”。
  • 这就是我的回答。你看见了吗?我现在扩展了它,区分了静音和非常静音的安装。

标签: inno-setup


【解决方案1】:

Inno Setup 中没有/Install silent 参数。

有/silent 和/verysilent。 /silent 仍会显示安装进度窗口,而/verysilent 则不会。

请参阅 Inno Setup 文档中的 Setup Command Line Parameters:

/沉默,/非常沉默

指示安装程序保持安静或非常安静。当安装程序处于静默状态时,不会显示向导和背景窗口,但会显示安装进度窗口。当安装程序非常安静时,不会显示此安装进度窗口。其他一切正常,例如在安装过程中会显示错误消息,并且启动提示是(如果您没有使用 DisableStartupPrompt 或上面解释的“/SP-”命令行选项禁用它)。

如果需要重新启动并且没有使用“/NORESTART”命令(见下文)并且安装程序处于静默状态,它会显示现在重新启动吗?消息框。如果它非常安静,它会在不询问的情况下重新启动。


因此,您必须使用 /verysilent 标志运行子安装程序以避免任何 GUI。

[Run]
Filename: "setup.exe"; Parameters: "/verysilent"; Flags: nowait

不过,如果你想静默运行子安装程序,只有当父安装程序静默运行时,你可以这样做:

[Run]
Filename: "setup.exe"; Parameters: "{code:SilentParameter}"; Flags: nowait

[Code]

function WizardVerySilent: Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 1 to ParamCount do
    if CompareText(ParamStr(i), '/verysilent') = 0 then
    begin
      Result := True;
      Break;
    end;
end; 

function SilentParameter(Param: string): string;
begin
  if WizardSilent then
  begin
    if WizardVerySilent then
      Result := '/verysilent'
    else
      Result := '/silent';
  end;
end;

区分静默和非常静默安装的代码灵感来自How to detect whether the setup runs in very silent mode? WizardSilent 是一个标准函数。

【讨论】:

    【解决方案2】:

    我试过了,它完全无声:

    [Run]
    Filename: "path\setup.exe"; Parameters:/VERYSILENT; Flags: nowait
    
    without "" in Parameter
    

    希望这会有所帮助

    【讨论】:

      【解决方案3】:

      我们尝试使用相同的代码使用 inno setup 进行静默安装

      [Run]
      Filename: "{app}\{#MyAppExeName}"; Parameters:/VERYSILENT; Flags: nowait
      

      但仍然可以选择目标文件夹和桌面图标

      【讨论】:

        猜你喜欢
        • 2011-06-04
        • 1970-01-01
        • 2021-06-28
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        • 2014-07-17
        • 2010-09-08
        • 2021-11-04
        相关资源
        最近更新 更多