首页 文章

使用相同的升级代码卸载以前的版本但未知的产品代码(WIX)

提问于
浏览
0

我们想通过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 回答

  • 0

    每个:Major Upgrades

    注意如果在每用户安装上下文中安装了应用程序,则还必须使用每用户上下文执行对应用程序的任何主要升级 . 如果在每台计算机安装上下文中安装了应用程序,则还必须使用每台计算机上下文执行对应用程序的任何主要升级 . Windows Installer不会在安装上下文中安装主要升级 .

    有一些方法可以通过引导程序清理实用程序解决此问题,但即使这样也可能无法正常工作,因为每个用户的安装可能是使用不同的用户帐户完成的,并且超出了范围 .

  • 0

    如果您的UpgradeCode是相同的假设它应该工作:

    • 您已经在前3位数中增加了ProductVersion .

    • 您的新产品包含FindRelatedProduct,RemoveExistingProducts操作 . 换句话说,WiX升级内容或MajorUpgrade元素 .

    • 两个安装都在相同的上下文中(每个用户超过每个用户或每台机器上的每台机器) .

    我不能从之前的帖子中看出这些是否正在发生 .

相关问题