我有一个使用ManagedBootstrapperApplicationHost的WiX Burn自定义安装程序。安装其中一个先决条件Microsoft Windows Installer 4.5后,我强行重启PC(Windows XP):
<ExitCode Behavior="forceReboot"/>
Bundle链看起来像这样:
<Chain>
<PackageGroupRef Id="WindowsInstaller45"/>
<PackageGroupRef Id="Netfx2Full"/>
<PackageGroupRef Id="Netfx4Full"/>
<PackageGroupRef Id="CustomPkg"/>
<PackageGroupRef Id="SQLExpress"/>
</Chain>
重新启动后,我希望我的安装在此之后继续,但它实际上检测到安装并显示卸载选项。
如何在安装过程中重新启动时检测到未完成的安装?
答案 0 :(得分:8)
在重新启动后再次启动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.
}