我几个月来一直在使用Inno Setup,但是我很难找到如何从安装程序本身中检测到一个错误,该错误会导致Inno Setup以非零退出代码结束。 / p>
我考虑过将CurStepChanged
与ssDone
步骤一起使用,甚至DeinitializeSetup
,但我找不到如何访问向导的退出代码。
我错过了什么吗?必须有办法做到这一点......
答案 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
。因此,如果安装程序中出现这种情况,您可能需要检查这两个步骤。