Wix:根据Windows操作系统版本定义变量:x86/x64
问题描述:
我有一个用于创建msi安装程序的Wix xml。 我希望根据当前的Windows版本 - x86或x64,而不是基于当前的$(var.Platform)
(即安装配置)来安装窗帘组件。Wix:根据Windows操作系统版本定义变量:x86/x64
我该怎么做? 我能想到的最好的办法是定义一个变量,基于Windows版本:
<?if %PROCESSOR_ARCHITECTURE~="amd64" OR %PROCESSOR_ARCHITEW6432~="amd64"?>
<?define InstallationFolder = "x86" ?>
<?else ?>
<?define InstallationFolder = "x64" ?>
<?endif ?>
及按所需组件文件的源路径使用。
问题是上面的布尔表达式有问题,并且没有检测到操作系统,它检测到进程。 虽然我使用VersionNT64
,但我没有看到如何在<?if>
布尔表达式中使用它的方法。
答
如何使用C#自定义操作来检测64位或32位,并仅覆盖那里的值?
编写自定义动作: http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html
这似乎是一个构建的问题,是吗?如果是这样,VersionNT64是不相关的,因为它是Windows安装程序的安装时间属性。对于构建,它看起来像你在这个答案中需要var.Platform。 http://stackoverflow.com/questions/471424/wix-tricks-and-tips/577793#577793和这个http://stackoverflow.com/questions/6231950/using-wix-to-create-32bit-and-64bit -installers从 - 一个WXS文件 – PhilDW