【发布时间】:2016-07-06 10:58:51
【问题描述】:
当更新\安装发生时机器可能正在关闭/重新启动/注销,这可能会损坏安装。
如果我们通过在InstallInitialize 之后安排RemoveExistingProducts 来设置回滚选项,它会在机器重新启动后恢复安装\更新吗?
如果 wix 中有一种方法可以防止用户在安装\升级期间重新启动和注销?
我们如何让 wix 安装程序在重启后甚至在突然关机后(通过硬件)恢复其剩余的工作?
更新
我们为客户部署了一个桌面应用程序。我们的客户可以自动升级到最新版本。我们的应用程序将下载最新版本的 msi 并在后台静默运行 msiexex.exe 命令,以便用户无需执行任何操作。所有的事情都会在后台默默地完成。它工作得很好。现在,我们的一些客户抱怨他们之前有 v2.1,但现在它已经消失了。我们正在考虑以下可能的情况:
-
在升级过程中,会下载最新版本的 MSI,并由应用程序本身在后台使用命令 MSIEXEC.exe 调用它。已安装(现有)版本的卸载已完成,但新版本的安装失败,这两个版本均已从计算机上卸载。
根据阅读不同的论坛,似乎只有在卸载现有版本失败时才会发生 wix 中的回滚。 所以,我的问题是: 如果新版本安装过程中出现错误,是否会回滚到现有版本?
由于用户永远不会知道应用程序的更新正在进行,因为它将在静默模式下完成,因此用户可能会在升级期间重新启动或关闭他们的计算机。所以,我最初的问题是:如果机器在安装过程中重新启动或关闭,安装是否会损坏。就像您说的那样,如果所有事情都是事务性的并且旨在随时从重新启动中恢复,那么这对我们有好处。那么,你的意思是我们不必自己处理这种情况吗?会被wix自动处理吗?
那么,是否是第一种情况导致应用程序在升级过程中被卸载?或者还有其他可能吗?
【问题讨论】:
标签: c# installation wix windows-installer