WiX防止x86和x64并排安装

WiX防止x86和x64并排安装,wix,Wix,过去,我们只提供了工具套件的x86版本,但从下一版本开始,我们还希望为工具套件的一个子集提供x64版本。我已经更新了我们的MSI项目,为x86和x64分别构建了一个版本。MSI文件包含以下内容: x86,一切都是x86 x64,x86版本中的所有内容+作为x64提供的子集 我想防止x86和x64 MSI在x64平台上并行安装。我该怎么做?还是在提供x86和x64版本的产品时采取了错误的方法?我想我可以在x86 MSI中包含一个条件,即不允许将其安装在x64平台上,但这被认为是不好的吗 Atm

过去,我们只提供了工具套件的x86版本,但从下一版本开始,我们还希望为工具套件的一个子集提供x64版本。我已经更新了我们的MSI项目,为x86和x64分别构建了一个版本。MSI文件包含以下内容:

  • x86,一切都是x86
  • x64,x86版本中的所有内容+作为x64提供的子集
我想防止x86和x64 MSI在x64平台上并行安装。我该怎么做?还是在提供x86和x64版本的产品时采取了错误的方法?我想我可以在x86 MSI中包含一个条件,即不允许将其安装在x64平台上,但这被认为是不好的吗

Atm两个MSI共享相同的升级代码(我认为这是一个好主意,如果我们之前只发布了x86版本,并希望通过最新版本的x86和x64版本进行升级),并且ProductCode和PackageCode都设置为*


非常感谢您的帮助。

您可以让x64安装程序在32位注册表中编写一个注册表项,有效地说“我已安装”以及任何其他有用的信息,并使用搜索和启动条件。或者使升级代码不同—反正它们是不同的产品线—并在x86设置中使用升级元素搜索(仅限升级版本检测)x64版本的升级代码

这将在x64安装后阻止x86,但不会阻止首先安装x86,但为此,您可以在x64安装中包含x86升级代码,以便x64安装将升级并删除x86


为了防止在x64上安装x86,应该设置一个启动条件,例如“Not VersionNT64”,文档中说VersionNT64仅在x64操作系统上定义

FWIW,我会给每个MSI一个不同的升级代码。如果希望x64取代x86,则x64安装可以有一个升级表条目来删除x86升级代码

你可能还想考虑一个Booto BooStpPPER来处理x86 vs x64,这样你的用户就不必考虑哪一个是正确的选择。我不知道你的微星有多大