C++ 我如何强制执行C++;MSBuild中的平台?

C++ 我如何强制执行C++;MSBuild中的平台?,c++,visual-studio,msbuild,vcxproj,C++,Visual Studio,Msbuild,Vcxproj,我有一个程序,必须建立为32位。它随x64应用程序一起提供。因此,有一个安装程序获得了比特数 安装程序是使用wixproj构建的,该wixproj必须使用/p:Platform=x64构建,但是vcxproj需要构建为x86 我试图通过显式设置将Platform强制为x86或Win32: <PropertyGroup> <Platform>Win32</Platform> </PropertyGroup> 最后,对这个问题进行了分析,但这对C

我有一个程序,必须建立为32位。它随x64应用程序一起提供。因此,有一个安装程序获得了比特数

安装程序是使用
wixproj
构建的,该wixproj必须使用
/p:Platform=x64
构建,但是
vcxproj
需要构建为x86

我试图通过显式设置将
Platform
强制为
x86
Win32

<PropertyGroup>
  <Platform>Win32</Platform>
</PropertyGroup>

最后,对这个问题进行了分析,但这对C++没有任何影响。MSBuild具有允许项目文件重写任何变量的设置,该变量进入文件开头的
项目
节点

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 
         ToolsVersion="4.0"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         TreatAsLocalProperty="Platform"> <!-- !!! -->
  <PropertyGroup>
     <Platform>Win32</Platform>
  </PropertyGroup>
  <!-- Now Platform is Win32 no matter what! -->
</Project>

Win32

终于解决了这个问题。MSBuild具有允许项目文件重写任何变量的设置,该变量进入文件开头的
项目
节点

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 
         ToolsVersion="4.0"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         TreatAsLocalProperty="Platform"> <!-- !!! -->
  <PropertyGroup>
     <Platform>Win32</Platform>
  </PropertyGroup>
  <!-- Now Platform is Win32 no matter what! -->
</Project>

Win32

终于解决了这个问题。MSBuild具有允许项目文件重写任何变量的设置,该变量进入文件开头的
项目
节点

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 
         ToolsVersion="4.0"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         TreatAsLocalProperty="Platform"> <!-- !!! -->
  <PropertyGroup>
     <Platform>Win32</Platform>
  </PropertyGroup>
  <!-- Now Platform is Win32 no matter what! -->
</Project>

Win32

终于解决了这个问题。MSBuild具有允许项目文件重写任何变量的设置,该变量进入文件开头的
项目
节点

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" 
         ToolsVersion="4.0"
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
         TreatAsLocalProperty="Platform"> <!-- !!! -->
  <PropertyGroup>
     <Platform>Win32</Platform>
  </PropertyGroup>
  <!-- Now Platform is Win32 no matter what! -->
</Project>

Win32

既然你在问这个问题,我想你不是在单独构建它们——那么你是如何构建这些项目的呢?它们是单一解决方案的一部分吗?您使用主生成文件吗?您可以显示调用生成它们的msbuild部分吗?@stijn:
msbuild foo.wixproj/p:Platform=x64/p:Configuration=Release
既然您在问这个问题,我假设您没有单独生成它们-那么您如何构建这些项目呢?它们是单一解决方案的一部分吗?您使用主生成文件吗?您可以显示调用生成它们的msbuild部分吗?@stijn:
msbuild foo.wixproj/p:Platform=x64/p:Configuration=Release
既然您在问这个问题,我假设您没有单独生成它们-那么您如何构建这些项目呢?它们是单一解决方案的一部分吗?您使用主生成文件吗?您可以显示调用生成它们的msbuild部分吗?@stijn:
msbuild foo.wixproj/p:Platform=x64/p:Configuration=Release
既然您在问这个问题,我假设您没有单独生成它们-那么您如何构建这些项目呢?它们是单一解决方案的一部分吗?您使用主生成文件吗?您是否可以显示调用生成它们的msbuild部分?@stijn:
msbuild foo.wixproj/p:Platform=x64/p:Configuration=Release