У меня есть установщик, написанный на WIX, с загрузчиком WPF. Недавно мы добавили режим установки без вывода сообщений, и нам нужно использовать коды возврата, чтобы указать, какая ошибка произошла во время установки без вывода сообщений, например: неверное имя пользователя или пароль, неверный адрес сервера, неподдерживаемая версия Windows и т. Д.
Мы используем метод Engine.Quit () из Bootstrapper класса для выхода из установщика с кодом выхода. Этот код выхода можно увидеть в журнале установщика:
[5490:4F84][2018-09-14T14:31:03]i007: Exit code: 0x101, restarting: No
Однако, когда я проверяю переменную среды % errorlevel% , она остается неизменной. Использование Environment.Exit () тоже не помогло.
Я подозревал, что MSI может быть ответственным за такое поведение, перезаписывая то, что пыталась установить WIX, но даже принудительное ActionResult.Failure в одном из действий установщика не помогает. Код выхода MSI находится в журнале MSI, но % errorlevel% остается неизменным:
MSI (c) (AC:9C) [14:30:59:133]: MainEngineThread is returning 1603
=== Verbose logging stopped: 2018-09-14 14:30:59 ===
Можно ли заставить WIX установить % errorlevel% в пользовательское значение, и если да, как это можно сделать?