我已经使用 Inno Setup 几个月了,但我正在努力寻找如何从安装程序本身内部检测到会导致 Inno Setup 以非零退出代码结束的错误。
我考虑过使用CurStepChanged
与ssDone
一步,甚至DeinitializeSetup
,但我找不到如何访问向导的退出代码。
我错过了什么?一定有办法做到这一点...
我想知道是否出现任何问题,以便我可以在计算机上启动回滚过程。您提出的答案起到了作用。
您无法从 Pascal 脚本中找到安装程序退出代码。
如果您想检测安装程序是否失败,请记住是否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
。因此,如果这种情况可能发生在您的安装程序中,您可能需要检查这两个步骤。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)