如何在Inno安装程序安装失败时调用exe(在安装程序本身内)?

时间:2015-10-26 10:19:19

标签: inno-setup exit-code

我几个月来一直在使用Inno Setup,但是我很难找到如何从安装程序本身中检测到一个错误,该错误会导致Inno Setup以非零退出代码结束。 / p>

我考虑过将CurStepChangedssDone步骤一起使用,甚至DeinitializeSetup,但我找不到如何访问向导的退出代码。

我错过了什么吗?必须有办法做到这一点......

1 个答案:

答案 0 :(得分:2)

您无法从Pascal Scripting中找到安装程序退出代码。

如果您想检测安装程序失败,请记住是否使用CurStepChanged调用ssDone并在DeinitializeSetup中对其进行测试。

var
  Succeeded: Boolean;

procedure DeinitializeSetup();
begin
  if Succeeded then
  begin
    Log('Installation succeeded');
  end
    else
  begin
    Log('Installation failed');
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssDone then
  begin
    Succeeded := True;
  end;
end;

如果安装程序失败,甚至在使用ssDone时会出现边缘情况。

例如,由于未重新启动计算机以完成先前的安装而失败。在这种情况下,不会使用CurStepChanged调用ssPostInstall。因此,如果安装程序中出现这种情况,您可能需要检查这两个步骤。