Как я могу получить код возврата программы установки на базе Inno Setup?Inno Setup Testing код выхода установщика
Например, в документации this указано, что код выхода будет 1, если «Setup не удалось инициализировать». В моем установщике в некоторых случаях код возвращает False
от InitializeSetup()
. Я запускаю установщик с флагом /silent
в командной строке. Если я echo %errorlevel%
, я получаю 0.
Соответствующая часть кода из функции InitializeSetup()
:
function InitializeSetup(): Boolean;
var
ResultCode: Integer;
begin
{ In silent mode, set Result to false so as to exit before wizard is }
{ launched in case setup cannot continue. }
if WizardSilent() then
begin
{ CompareVersion() logically returns the -1, 0 or 1 based on }
{ whether the version being installed is less than, equal to or greater }
{ than version already installed. Returns 0 is there is no existing }
{ installation. }
ResultCode := CompareVersion();
if ResultCode < 0 then
begin
Result := False;
Exit;
end;
end;
Result := True;
end;
из командной строки, вот как я бегу и захватывая возвращаемого значения:
C:\VersionCheck>myinstaller.exe /Silent
C:\VersionCheck>echo %errorlevel%
0
C:\VersionCheck>
В файле журнала показано:
2016-09-29 08:05:11.259 Log opened. (Time zone: UTC-07:00)
2016-09-29 08:05:11.259 Setup version: Inno Setup version 5.5.9 (u)
2016-09-29 08:05:11.259 Original Setup EXE: C:\VersionCheck\myinstaller.exe
2016-09-29 08:05:11.259 Setup command line: /SL5="$9051C,3445541,131584,C:\VersionCheck\myinstaller.exe" /Silent
2016-09-29 08:05:11.259 Windows version: 6.3.9600 (NT platform: Yes)
2016-09-29 08:05:11.259 64-bit Windows: Yes
2016-09-29 08:05:11.259 Processor architecture: x64
2016-09-29 08:05:11.259 User privileges: Administrative
2016-09-29 08:05:11.259 64-bit install mode: Yes
2016-09-29 08:05:11.259 Created temporary directory: C:\Users\ADMINI~1\AppData\Local\Temp\2\is-TQB2V.tmp
2016-09-29 08:05:11.275 Installed version component : 3
2016-09-29 08:05:11.275 Updating to version component : 0
2016-09-29 08:05:11.275 This computer already has a more recent version (3.5.0.0) of XYZ. If you wantto downgrade to version 0.0.0.0 then uninstall and try again. Setup will exit.
2016-09-29 08:05:11.275 InitializeSetup returned False; aborting.
2016-09-29 08:05:11.275 Got EAbort exception.
2016-09-29 08:05:11.275 Deinitializing Setup.
2016-09-29 08:05:11.275 Log closed.
Есть ли там som Что-то мне не хватает?
Да, вы получите код выхода 1, когда вы возвращаетесь '' false' из InitializeSetup'. Если вы этого не сделаете, покажите нам точную последовательность команд, которую вы используете для запуска установщика, и проверьте код выхода, включая полный вывод. –
@MartinPrikryl - отредактировал вопрос, чтобы получить более подробную информацию. Пожалуйста, проверьте. – Anand