重新启动后WiX刻录/强制重启继续安装

时间:2013-04-23 09:49:10

标签: wix installation windows-xp burn wix3.7

我有一个使用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>

重新启动后,我希望我的安装在此之后继续,但它实际上检测到安装并显示卸载选项。

如何在安装过程中重新启动时检测到未完成的安装?

1 个答案:

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