如何根据目标计算机(32 位或 64 位)有条件地使用 WiX 安装文件?

StackOverflow https://stackoverflow.com/questions/730534

  •  06-09-2019
  •  | 
  •  

我有一个包含 32 位版本和 64 位版本的文件。如果我在 32 位计算机上安装应用程序,我希望安装该文件的 32 位版本。同样,如果安装在 64 位计算机上运行,​​则应安装 64 位版本。如何检查使用 WiX 运行安装程序的机器类型?

拜托,没有一行答案。我正在寻找特定的 WiX 标签以及将它们放在我的 WiX 脚本中的位置。

有帮助吗?

解决方案

你可以 大概 只需使用条件做两个单独的组件

 VersionNT64

 Not VersionNT64

但正确的方法是为 32 位和 64 位操作系统编译单独的安装程序,并且 64 位组件也应该如此标记(使用 Win64="yes") - 我不知道是否可以将 Windows Installer 包标记为同时针对 Intel 和 x64。我唯一一次使用 NSIS 进行混合架构安装,我的所有 WiX 安装程序对于每个架构都有单独的安装程序。

其他提示

正确的方法是编译两种设置,一种用于 32 (x86),一种用于 64 (amd64)。然后,将这两个 msi 打包到一个 msi 中,并在运行时运行相应的 msi。

您可以使用环境或预处理器变量创建一个基本 wxs 文件,并在编译之前填写所需的属性。另一种选择是在构建之前运行一个脚本,该脚本在文件中包含用于特定安装的不同 GUID。简而言之,我认为没有一种简单的方法可以为不同的体系结构构建安装程序,因此您必须使用其他实用程序。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top