результат wix от выполнения программы? - PullRequest
0 голосов
/ 04 ноября 2010

Используя Wix, я хотел бы запустить исполняемый файл (который устанавливается) и перехватить возвращаемое значение.У меня нет проблем с запуском исполняемого файла через:

<CustomAction Id="UpgradeDBFromExe" FileKey="UpgradeDB.exe" ExeCommand="/update" Execute="deferred" Impersonate="no" Return="ignore"/>

Но я не уверен, как получить возвращаемое значение.Если я изменяю возврат на «проверка», то при сбое установщик откатывается (не то, что я хочу, чтобы происходить), вместо этого я хочу проверить этот результат позже (предположительно через свойство) и отобразить предупреждение.Я хочу использовать скрипт CustomAction для вызова исполняемого файла и сохранить результат как свойство, но это выглядит грязно.Есть ли лучший способ сделать это?

1 Ответ

2 голосов
/ 04 ноября 2010

Я буду предполагать, что это CustomAction вносит изменения в систему и, следовательно, требует привилегий и запланирован как отложенный / без олицетворения.Из-за этого, а также из-за того, что это пользовательское действие EXE, которое не выполняется, MSI не предоставляет способ установки свойств.Если вы используете шаблон WiX Quiet Execute Custom Action, вы можете захватить стандартный вывод и записать его, но это все.Если вы использовали тип настраиваемого действия DLL, вы можете проверить свойство UILevel и при необходимости вызвать MSI MessageBox, спрашивая пользователя, хотят ли они продолжить, и на основании этого вы можете вернуть успех или неудачу, но как EXE вы застряли.

Другим подходом было бы запустить другое пользовательское действие в последовательности пользовательского интерфейса после действия execute, которое проверяет, что сделал EXE-файл, и устанавливает свойство для успеха / неудачи, а затем удаляет некоторый пользовательский интерфейс.Единственное, что меня беспокоит - это слишком поздно, чтобы откатить установку, и пользователи все равно не читают то, что вы им ставите.

...