我有一个有 32 位版本和 64 位版本的文件。如果我在 32 位机器上安装我的应用程序,我希望安装 32 位版本的文件。同样,如果安装在 64 位机器上运行,则应安装 64 位版本。如何使用 WiX 检查安装程序在哪种类型的机器上运行?
拜托,没有单行答案。我正在寻找特定的 WiX 标签以及将它们放在我的 WiX 脚本中的位置。
我有一个有 32 位版本和 64 位版本的文件。如果我在 32 位机器上安装我的应用程序,我希望安装 32 位版本的文件。同样,如果安装在 64 位机器上运行,则应安装 64 位版本。如何使用 WiX 检查安装程序在哪种类型的机器上运行?
拜托,没有单行答案。我正在寻找特定的 WiX 标签以及将它们放在我的 WiX 脚本中的位置。
您可以使用条件只做两个单独的组件
VersionNT64
和
Not VersionNT64
但正确的方法是为 32 位和 64 位操作系统编译单独的安装程序,并且 64 位组件也应该这样标记(用Win64="yes"
) - 我不知道是否甚至可以将 Windows 安装程序包标记为面向英特尔和 x64。只有一次我使用 NSIS 完成了混合架构安装,我所有的 WiX 安装程序都有针对每个架构的单独安装程序。
这样做的正确方法是编译两个设置,一个用于 32 (x86),一个用于 64 (amd64)。然后将这两个 msi 打包到一个 msi 中,并在运行时运行相应的 msi。
您可以使用环境或预处理器变量创建一个基本 wxs 文件,并在编译之前填写所需的属性。另一种选择是在构建之前运行一个脚本,该脚本在文件中包含用于特定安装的不同 GUID。简而言之,我认为没有一种简单的方法可以为不同的架构构建安装程序,因此您必须使用其他实用程序。