【问题标题】:How do I conditionally install a file with WiX based on the target machine (32bit or 64bit)?如何根据目标机器(32 位或 64 位)有条件地使用 WiX 安装文件?
【发布时间】:2010-10-18 08:22:11
【问题描述】:

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

请不要单行回答。我正在寻找特定的 WiX 标签以及将它们放在我的 WiX 脚本中的什么位置。

【问题讨论】:

    标签: windows wix 32bit-64bit


    【解决方案1】:

    您可以可能使用条件只做两个独立的组件

     VersionNT64
    

     Not VersionNT64
    

    但是正确的方法是为 32 位和 64 位操作系统编译单独的安装程序,并且 64 位组件也应该这样标记(使用Win64="yes") - 我不知道是否可以标记 Windows 安装程序针对英特尔和 x64 的软件包。只有一次我使用 NSIS 完成了混合架构安装,我所有的 WiX 安装程序都有针对每个架构的单独安装程序。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-08
          • 1970-01-01
          • 1970-01-01
          • 2011-05-18
          • 2012-12-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多