3

我对细节有点轻,但我认为我们有问题。

使用在 wix 中提升安装程序项目的复制/粘贴方法,我们似乎错过了更新 UpgradeCode 以确保它们是唯一的......

<Product Id="*" UpgradeCode="SOME-BAD-FOO">

所以,我的理解是这“不好”(r)(tm)

目前,存在此问题的 2 个安装程序的用户不太可能同时安装这两个安装程序,但他们将来可能会安装。

寻找有关如何在此问题成为安装的噩梦之前解决此问题的想法...也许 Windows 甚至无法同时安装两者?有没有办法执行升级安装/补丁和更改升级代码?

4

2 回答 2

4

所以,我的理解是这“不好”(r)(tm)

这真的不好,你应该小心不要在未来这样做,因为它会给你和你的用户带来很多麻烦。

但是,解决方案非常简单。您需要做的就是更改其中一个软件包的升级代码,并将当前升级代码添加到新版本的升级表中,以便在机器上找到它时将其删除。

如果您确定所有已安装第一个版本的用户都将安装第二个版本,则在下一个版本中,您应该从升级表中删除升级代码,以确保您与第二个软件包没有任何冲突,即仍然使用第一个升级代码。

于 2012-11-14T07:46:23.820 回答
2

我要问的一个问题是您使用的是主要升级还是次要升级。

如果是 Minor,我从未尝试过更改 UpgradeCode 而不是 ProductCode。我认为这没关系,但我害怕发现。

如果是重大升级,产品是否使用不同的版本号范围?1.0-1.9 , 2.0-2.9? 如果是这样,则可以更改两个安装程序中的 UpgradeCode(只需将“脏”guid 保留在您的过去),然后在 UpgradeTable 中使用带有版本号的旧 guid 作为识别正确产品代码的关键。

如果不知道,您是否知道曾经为这两种产品发布的每一个 ProductCode?自定义操作可用于查询 MSI 以获取已安装的 ProductCode,然后将其与已知 guid 列表进行比较以确定它是否适用。

不过,您必须永远保留代码。旧版本的软件倾向于永远存在。

于 2012-11-15T12:40:22.890 回答