WiX Burn после перезагрузки / принудительной перезагрузки продолжая установку

У меня есть пользовательский установщик WiX Burn, использующий ManagedBootstrapperApplicationHost. После установки одного из обязательных компонентов Microsoft Windows Installer 4.5 я принудительно перезагружаю ПК (Windows XP), используя:

<ExitCode Behavior="forceReboot"/>

Цепочка Bundle выглядит так:

<Chain>
   <PackageGroupRef Id="WindowsInstaller45"/>
   <PackageGroupRef Id="Netfx2Full"/>
   <PackageGroupRef Id="Netfx4Full"/>
   <PackageGroupRef Id="CustomPkg"/>
   <PackageGroupRef Id="SQLExpress"/>
</Chain>

После того, как он перезагрузится, я хочу, чтобы моя установка продолжилась после этого, но он фактически обнаруживает установку и показывает опцию Удалить.

Как я могу обнаружить незаконченную установку, когда перезагрузка происходит во время установки?

1 ответ

Решение

Когда Bundle запускается снова после перезапуска BOOTSTRAPPER_COMMAND структура передана вашему BootstrapperApplicationCreate функция содержит resumeType поле, которое будет установлено в BOOTSTRAPPER_RESUME_TYPE_REBOOT, В управляемом коде BootstrapperApplication класс содержит Command свойство, которое содержит resume поле.

Например, в управляемом коде, чтобы сказать, что ваш BootstrapperApplication после перезагрузки вы можете проверить:

 if (BootstrapperApplication.Command.resume == ResumeType.Reboot)
 {
    // started after restart, go straight to Detect->Plan->Apply to finish the
    // previous operation. BootstrapperApplication.Command.action will tell us
    // the action to complete.
 }
 else
 {
    // started normally, show typical UI scenarios.
 }
Другие вопросы по тегам