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.
}