6

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

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

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

4

1 回答 1

11

当 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.
 }
于 2013-04-23T13:06:12.063 回答