Wix:根据Windows操作系统版本定义变量:x86 / x64

时间:2016-11-24 07:29:23

标签: wix windows-installer

我有一个用于创建msi设置的Wix xml。 我希望从基于当前Windows版本x86或x64的位置安装窗帘组件,而不是基于当前的$(var.Platform),即设置配置。

我该怎么办? 我能想到的最好的方法是根据Windows版本定义一个变量:

  <?if %PROCESSOR_ARCHITECTURE~="amd64" OR %PROCESSOR_ARCHITEW6432~="amd64"?>
  <?define InstallationFolder = "x86" ?>
  <?else ?>
  <?define InstallationFolder = "x64" ?>
  <?endif ?>

并按源路径使用它来获取所需的组件文件。

问题是上面的布尔表达式存在问题,并且没有检测到操作系统,它会检测到进程。 我虽然使用VersionNT64,但我没有看到如何在<?if>布尔表达式中使用它的方法。

1 个答案:

答案 0 :(得分:0)

如何使用C#自定义操作来检测64位或32位并从中覆盖该值?

编写自定义操作: http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html

How to pass parameters to the custom action?