我正在使用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);
答案 0 :(得分:1)
您应该验证升级是否正常运行。例如,如果你安装了每台机器,那么按用户进行升级"没有真正的升级,因为两个产品仍然会被安装。如果您卸载了新的每个用户设置,它将使每台机器安装一个,然后您无法降级它。有类似的场景与交叉上下文"升级"反之亦然。所以这些是猜测,不知道整个情况,所需的信息主要是初始安装的详细日志和你说的升级工作。
"机器上没有任何东西"可能只是使用ARPSYSTEMCOMPONENT = 1。或者,如果您使用其他凭据登录,则无法看到在其他帐户下安装的产品。因为相同的PackageCode会导致这些类型的问题,所以如果你有一个自动生成的Id" *"在你的Package元素中。
获取升级的详细日志,并确保找到旧产品。
这可能是一个MSI错误,但不太可能。我唯一一次看到这个问题是在灾难性的机器崩溃期间,即使产品本身没有标记为已安装,也会在系统上留下部分UpgradeCode信息。这是针对单台计算机的,因此您可以通过在干净计算机上重复方案来验证这是否是问题(虚拟机对此有所了解)。
最简单的方法是使用新的UpgradeCode重新开始,确保始终在每次构建时生成新的PackageCode,同时更改ProductCode以及每次重大升级。