WIX:如果我启用升级并卸载新版本并尝试安装旧版本,则无法安装应用程序

时间:2016-05-19 16:24:32

标签: wix windows-installer wix3.7 msiexec wix3.8

我正在使用WIX来创建msi文件。我正在使用重大升级。升级正常,但是如果卸载新版本,例如Build 9并安装旧版本(示例3),我收到了一个错误,虽然我的机器上当前没有安装此版本比安装版本旧。安装将退出。 这是我的WIX配置。

var str = '{"prop": true}';

var o = JSON.parse(str);
console.log(JSON.stringify(o));
console.log('But `prop` is: ', o.prop);

1 个答案:

答案 0 :(得分:1)

您应该验证升级是否正常运行。例如,如果你安装了每台机器,那么按用户进行升级"没有真正的升级,因为两个产品仍然会被安装。如果您卸载了新的每个用户设置,它将使每台机器安装一个,然后您无法降级它。有类似的场景与交叉上下文"升级"反之亦然。所以这些是猜测,不知道整个情况,所需的信息主要是初始安装的详细日志和你说的升级工作。

"机器上没有任何东西"可能只是使用ARPSYSTEMCOMPONENT = 1。或者,如果您使用其他凭据登录,则无法看到在其他帐户下安装的产品。因为相同的PackageCode会导致这些类型的问题,所以如果你有一个自动生成的Id" *"在你的Package元素中。

获取升级的详细日志,并确保找到旧产品。

这可能是一个MSI错误,但不太可能。我唯一一次看到这个问题是在灾难性的机器崩溃期间,即使产品本身没有标记为已安装,也会在系统上留下部分UpgradeCode信息。这是针对单台计算机的,因此您可以通过在干净计算机上重复方案来验证这是否是问题(虚拟机对此有所了解)。

最简单的方法是使用新的UpgradeCode重新开始,确保始终在每次构建时生成新的PackageCode,同时更改ProductCode以及每次重大升级。