是的,在安装失败时通过回滚恢复旧的应用程序版本实际上是
Windows Installer的内置功能,但您需要正确配置以使其按需运行.
如果您使用以下命令,Windows Installer回滚将按您的要求运行:1)次要升级或2)正确排序的主要升级,在成功更新所有文件后卸载旧版本.如果在安装新版本之前将主要升级设置为卸载旧版本,则由于卸载已经结束,因此回滚不可用,因此如果新安装程序失败并回滚,则新安装程序将不会保留任何内容.
重要提示:对于次要升级以及在主要升级中延迟卸载旧版本以使其正常工作,必须100%准确地遵循所有MSI组件规则.
在考虑更新后卸载旧版本的主要升级时,您可以将其视为修补操作,而无需将更新打包为修补程序. Windows Installer实际上将在旧版本和新版本上运行差异,然后仅实现所需的更改,而不会触及应用程序的其余部分.根据应用程序结构和文件数量,安装速度也会明显加快.
延迟排序的主要升级也是防止配置文件在升级期间恢复到其原始安装状态的一种方法.这是一个经典问题,其中配置文件在安装后更改,在主要升级期间卸载然后重新安装,给人的印象是它们实际上是刚刚重新安装时还原的.
我之前写了大约Windows Installer Rollback.可能值得一读.