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