在这里得到一个好答案之后:WIX: How can I uninstall a previous MSI built using a VS *.vdproj,现在我面临着一个不同的问题 .
我有2个版本,有2个不同的UpgradeCodes . 之所以发生这种情况,是因为我们已经部署了一个版本的新WIX w / out将UpgradeCode与旧的MSI同步 .
将新的Wix安装程序与其中一个代码同步,升级顺利进行 . 我是否在第二个人身上?我试图从Add / Remove中卸载额外的一个并且运行顺利,但在我指示这些用户进入Add / Remove之前,我想知道是否还有另一个技巧来处理这两个问题 .
也许如果我可以在安装过程中以某种方式检测安装了哪个版本,我可以动态设置新的Wix UpgradeCode吗?
2 回答
将UpgradeCodes升级到升级表中,分成两行 . 这允许您在升级期间让MSI自动卸载旧的MSI(如果这是您想要的),并且允许您有条件地使用MSI属性来检查系统上已安装的内容 .
更新(回复第一条评论)
此代码将检测两个UpgradeCodes,如果找到一个(或两个),将在RemoveExistingProducts操作期间删除它们 .
要检测旧版本,我会考虑使用自定义操作 .