Я только хочу перезагрузиться при удалении. Это фрагмент из моего файла WiX:Почему мой установщик всегда запрашивает перезагрузку
<InstallExecuteSequence>
...
<Custom Action="CleanRegistry" Sequence="7100">REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE</Custom>
<ScheduleReboot Sequence="7200">REMOVE~="ALL" AND NOT UPGRADINGPRODUCTCODE</ScheduleReboot>
</InstallExecuteSequence>
Запуск сгенерированного MSI производит следующий журнал:
MSI (s) (48:7C) [10:19:29:951]: Skipping action: CleanRegistry (condition is false)
MSI (s) (48:7C) [10:19:29:951]: Doing action: ScheduleReboot
Как это возможно, что такое же условие имеет значение Ложь, то правда? Распределяет ли ScheduleReboot свое состояние?
Редактировать: Я также пытаюсь использовать условие REBOOT ~ = "Force", чтобы условно выполнить команду при запросе перезагрузки моим индивидуальным действием. Это условие никогда не оценивает true, и моя команда не запускается. Свойство задается вызовом MsiSetProperty из пользовательского действия. Либо это пользовательское действие не работает, либо я допустил ошибку в моем состоянии! Какие-либо предложения?
Возможно, в вашем запуске MSI ScheduleReboot может быть другое действие. Вы пытались найти его с помощью Orca? –
В моем файле WiX есть только одно действие ScheduleReboot, и журнал установки показывает, что он запускается сразу после того, как мое индивидуальное действие с тем же условием было пропущено. – mchr