我们想通过WIX在Windows上推出.net应用程序的新主要版本(V2.0) .
此部署将是每台机器安装 . 更新将是重大更新(例如V2.1,......) . 此机制按预期工作 . 产品更新后,它将被注册表中的新版本替换 . 但它不会取代以前的版本(低于V2.0) .
此产品的早期版本(V1.0,V1.1,V1.5)也与WIX一起安装,但方式不同 . 这些是每用户安装 . 产品安装程序具有已定义的ProductCode . 主要升级安装程序已设置,因此每个升级安装程序的产品代码都已更改 . 每次新升级都会产生新的注册表项 . 所以升级后我们在注册表中有一个版本1.0,1.1,1.2(以及“删除程序”-dialog)
随着版本2.0,我想清理一切 . 应删除所有版本1安装 . 所有安装程序唯一常见的是升级代码 . 不幸的是,运行我的V2.x安装程序时,版本v1.x保持不变 .
有没有办法通过Wix原生或自定义动作实现这一目标?
2 回答
每个:Major Upgrades
有一些方法可以通过引导程序清理实用程序解决此问题,但即使这样也可能无法正常工作,因为每个用户的安装可能是使用不同的用户帐户完成的,并且超出了范围 .
如果您的UpgradeCode是相同的假设它应该工作:
您已经在前3位数中增加了ProductVersion .
您的新产品包含FindRelatedProduct,RemoveExistingProducts操作 . 换句话说,WiX升级内容或MajorUpgrade元素 .
两个安装都在相同的上下文中(每个用户超过每个用户或每台机器上的每台机器) .
我不能从之前的帖子中看出这些是否正在发生 .