我的解决方案是使用“Any CPU”平台设置构建的。对于我的WiX 3.6安装程序项目设置,似乎我不能将目标平台设置为“x64”,只能选择“x86”。WiX项目可以针对x64构建吗?
无法为任意CPU构建Windows安装程序,我通常要建立两次,托管代码设置为Any CPU,同时安装程序有两个配置x86和x64。
您可能需要创建这些配置,可以通过右键单击解决方案并选择配置管理器,然后在平台下拉菜单中进行选择来完成。完成后,您应该能够在wixproj中看到以下定义:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DefineConstants>Debug</DefineConstants>
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
为了使安装程序可同时运行在x86和x64上,请定义变量来检测并设置安装的体系结构。
<?if $(var.Platform) = x64 ?>
<?define bitness = "(64 bit)" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define bitness = "(32 bit)" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
我将 bitness
变量添加到名称中作为一个视觉提示:
<Product Name="My Install $(var.bitness)"
请根据需要参考 Program Files 文件夹:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
组件已适当设置了Win64标志:
<Component Win64="$(var.Win64)"