如何根据目标计算机(32 位或 64 位)有条件地使用 WiX 安装文件?
-
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。简而言之,我认为没有一种简单的方法可以为不同的体系结构构建安装程序,因此您必须使用其他实用程序。
不隶属于 StackOverflow