我在将托管代码从x86迁移到x64平台时遇到了问题。我有一个WiX项目来创建MSI,该项目将通过Bootstrapper执行。
在x86平台上,文件按照Project.wxs文件中的方式复制到“Program Files”中。但是,如果通过Bootstrapper在x64平台上安装相同的MSI,则所有安装文件都会默认复制到“Program Files(x86)”中,并且应用程序的功能失败,因为它无法在Program Files的12-hive层次结构中找到所需的文件(对于64位系统,“C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG”)。
我尝试使用预处理器变量,如<?if $(var.ProcessorArchitecture)=x64 ?> ,但我需要在项目属性中硬编码此变量为x86或x64。最终,我得到了两个不同的MSI,适用于两个不同的平台,这对我来说不是理想的解决方案。
因此,通过WiX,是否可以识别平台以确保在所需位置进行安装?
在x86平台上,文件按照Project.wxs文件中的方式复制到“Program Files”中。但是,如果通过Bootstrapper在x64平台上安装相同的MSI,则所有安装文件都会默认复制到“Program Files(x86)”中,并且应用程序的功能失败,因为它无法在Program Files的12-hive层次结构中找到所需的文件(对于64位系统,“C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG”)。
我尝试使用预处理器变量,如<?if $(var.ProcessorArchitecture)=x64 ?> ,但我需要在项目属性中硬编码此变量为x86或x64。最终,我得到了两个不同的MSI,适用于两个不同的平台,这对我来说不是理想的解决方案。
因此,通过WiX,是否可以识别平台以确保在所需位置进行安装?