断电后继续安装
Posted
技术标签:
【中文标题】断电后继续安装【英文标题】:Resume installation after a power off 【发布时间】:2013-10-23 08:35:54 【问题描述】:我有一个使用 wix 3.7 的托管引导程序应用程序。
在执行其中一个 ExePackage 的过程中,如果出现强制关机或断电,那么当系统重新启动并且用户再次启动引导程序时,它应该从它停止的最后一个 ExePackage 恢复。 Command 参数的值是“Install”而不是“Resume”。 如何确保它以“恢复”命令开始。
【问题讨论】:
【参考方案1】:引导程序并非旨在跟踪任意安装程序的进度。每次运行时,它要么发现它本身已完全安装并执行其修改/删除行为,要么它没有并执行其安装行为。
在安装过程中,链中的每个 ExePackage 都有一个可选的检测条件。如果条件不存在或失败,则执行该包的 InstallCommand。
因此,理想情况下,安装程序应该自行解决是否只是部分安装,然后做正确的事情。 (换句话说,要像 Windows Installer 和其他精心设计的安装程序一样健壮。)
如果您无法更改但可以将此类检测条件写入您的 Bundle,您可以尝试在您的链中添加两个 ExePackage 元素,1) 在安装程序已部分安装的情况下运行 Resume 命令,然后 2)在安装程序未完全安装的情况下运行安装命令。
正常安装案例:
-
第一个没有运行,
第二个运行完毕。
恢复安装案例,重新开始:
-
第一个没有运行,
第二个运行但是
中断
通电再走
第一个运行
如果再次出现中断,则返回两步
第二个没有运行
如果在您的 Bundle 中执行此操作不方便,您可以在无法处理的安装程序周围编写一个强大的包装器。当然,这假设您可以根据机器的状态判断何时应该使用 Resume 命令和 Install 命令。
【讨论】:
以上是关于断电后继续安装的主要内容,如果未能解决你的问题,请参考以下文章