WIX 安装程序。如何 rollback/downgrade

WIX installer. How to rollback/downgrade

我有一个使用标准 MajourUpgrade 逻辑的 WIX 安装程序:

<MajorUpgrade Schedule="afterInstallInitialize" AllowDowngrades="no" DowngradeErrorMessage="!(loc.DowngradeErrorMessage)" AllowSameVersionUpgrades="yes" />

安装程序收集了一些文件,也有一些自定义操作。我想知道是否可以自动回滚。例如:

如果我先安装1.0.0.0版本再安装1.0.1.0版本。如何在不引入补丁的情况下将 1.0.1.0 的安装回滚到 1.0.0.0。我不想卸载然后重新安装旧版本。

先谢谢你。

首先,添加对 WiXFailWhenDeferred Custom Action 的引用。这使您可以轻松地进行回滚以启用测试。

其次,阅读Major Upgrade documentation。查看 afterInstallExecute 的描述并阅读链接的博客文章。

IMO 更安全的做法是设计一个几乎永远不会失败的安装,只使用默认行为并接受有人可能不得不重新安装原始版本。如果您仍然想要您想要的行为,请确保您遵循组件规则。在测试中使用 MSIENFORCEUPGRADECOMPONENTRULES property 以帮助注意组件规则违规。请务必测试网络新安装和升级安装并比较文件集以确保一切按您预期的方式工作。