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



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

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

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

重要:为了小版本升级和在大版本升级中卸载旧版本,必须100%准确地遵循所有MSI组件规则

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

后顺序的主要升级也是一种防止配置文件在升级期间被还原到到其原始安装状态的方法。这是一个典型的问题,配置文件在安装后更改,在主要升级期间卸载,然后重新安装,给人的印象是他们恢复了,当他们实际上是刚刚重新安装。

我以前写过关于Windows Installer Rollback。可能值得一读

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

有一种可能性,但它涉及改变升级顺序,这并不总是一件容易实现的事情。你应该把RemoveExistingProducts移到install_execute动作之后

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

最新更新