我对细节有点了解,但我认为我们遇到了问题。
在wix中使用boostrapping安装程序项目的复制/粘贴方法,似乎我们似乎错过了更新UpgradeCode以确保它们是唯一的......
<Product Id="*" UpgradeCode="SOME-BAD-FOO">
所以,据我所知,这是“不好”(r)(tm)
目前,具有此问题的2个安装程序的用户不太可能同时安装这两个安装程序,但将来可能会安装这两个安装程序。
寻找有关如何在此问题成为已安装的噩梦之前解决此问题的想法...... 也许Windows甚至无法同时安装两者? 有没有办法执行升级安装/补丁并更改UpgradeCode? p>
答案 0 :(得分:4)
所以,据我所知,这是“不好”(r)(tm)
这真的不好,你应该小心不要在将来这样做,因为它可以给你和你的用户带来很多麻烦。
然而,解决方案非常简单。您需要做的就是更改其中一个软件包的升级代码,并在新版本的Upgrade table中添加当前升级代码,以便在计算机上找到它时将其删除。 / p>
如果您确定安装了第一个版本的所有用户都将安装第二个版本,那么在下一个版本中,您应该从升级表中删除升级代码,以确保您没有任何冲突。第二个包,即仍然使用第一个升级代码。
答案 1 :(得分:2)
我要问的一个问题是你使用主要或次要升级。
如果是Minor,我从未尝试更改UpgradeCode而不是ProductCode。我认为没关系,但我不敢发现。
如果重大升级,产品是否使用不同的版本号范围? 1.0-1.9,2.0-2.9?如果是这样,就可以在两个安装程序中更改UpgradeCode(只需在过去保留'脏'guid),然后使用版本号中的旧版guid作为识别正确产品代码的关键。 / p>
如果没有,您是否知道这两种产品的每一个ProductCode都已经发布到野外?可以使用自定义操作来查询MSI以查找已安装的ProductCodes,然后将其与已知guid列表进行比较,以确定它是否适用。
你必须永远保留代码。旧版本的软件有一种永远存在的倾向。