WiX Burn 重启后/强制重启继续安装
Posted
技术标签:
【中文标题】WiX Burn 重启后/强制重启继续安装【英文标题】:WiX Burn after restart/force reboot continuing installation 【发布时间】:2013-04-16 11:32:36 【问题描述】:我有一个使用 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>
重启后,我希望我的安装在此之后继续,但它实际上会检测到安装并显示卸载选项。
在安装过程中重新启动时如何检测未完成的安装?
【问题讨论】:
你的链在你的包中是什么样子的,你使用的是什么版本的 wix? 我正在使用 Wix 3.7 我的链如下当 Bundle 在重新启动后再次启动时,传递给 BootstrapperApplicationCreate
函数的 BOOTSTRAPPER_COMMAND
结构包含将设置为 BOOTSTRAPPER_RESUME_TYPE_REBOOT
的 resumeType
字段。在托管代码中,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.
【讨论】:
谢谢罗伯!我应该在 this.Engine.Detect() 中检查相同的内容吗?在运行中 是的,你需要在 Run() 或类似的早期检查它。 谢谢罗伯!经过上述实施后,它按预期完美运行 引导程序中的“托管代码”在哪里?以上是关于WiX Burn 重启后/强制重启继续安装的主要内容,如果未能解决你的问题,请参考以下文章
强制 WiX Burn 引导程序允许 MSI 文件使用 REINSTALLMODE=amus