Msiexec:在安装失败时自动回滚到以前的版本

在静默模式下使用msiexec安装.MSI文件时,是否可以将其自动化,以便在安装失败时回滚到以前的版本? 假设在安装时已经安装了旧的应用程序版本。


是的,在安装失败时通过回滚恢复旧的应用程序版本实际上是Windows安装程序的一项内置功能 ,但您需要正确配置以使其能够按需要正常工作。

如果您使用以下方式, Windows安装程序回滚将按您的请求工作: 1)次要升级2)在成功更新所有文件后卸载旧版本的正确排序的主要升级 。 如果主要升级设置为在安装新版本之前卸载旧版本,则由于卸载已结束,所以回滚不可用,因此,如果新安装程序失败并回滚,则不会安装任何内容。

重要提示 :对于次要升级以及在主要升级中的旧版本的后期卸载才能正常工作, 必须严格遵循所有MSI组件规则

在考虑更新后卸载旧版本的主要升级时, 您可以将其视为修补操作而无需将更新打包为修补程序。 Windows Installer实际上会在旧版本和新版本上运行diff,然后只实现所需的更改,而不改变应用程序的其余部分。 根据应用程序结构和文件数量的不同, 安装速度也会明显加快

晚期排序的主要升级也是一种防止配置文件在升级过程中恢复到原始安装状态的方法。 这是一个经典的问题,在安装后配置文件被更改,在主要升级期间卸载,然后重新安装,以便在实际上刚刚重新安装时发生还原。

我以前写过有关Windows Installer回滚的内容 。 可能值得一读。


不,这是不可能的。 在安装新版本之前,主要升级会卸载旧版本。 所以当新安装失败时,旧版本已被删除。


有可能,但它涉及到改变升级顺序,这并不总是一件容易的事情。 您应该在InstallExecute操作后移动RemoveExistingProducts

http://msdn.microsoft.com/en-us/library/windows/desktop/aa371197(v=vs.85).aspx

链接地址: http://www.djcxy.com/p/56273.html

上一篇: Msiexec: automatic rollback to previous version on installation failure

下一篇: Example of usage in C#