MSBuild:如何为所有配置/平台组合构建目标?

时间:2017-08-03 18:54:25

标签: c# visual-studio visual-c++ msbuild

我有一个包含许多目标的MSBuild XML文件,有些是几个项目文件,有些是完整的解决方案。

我正在寻找的是一种方法来执行以下操作:

MSBuild.exe build.xml /target:Target1 /p:Configuration="Debug;Release" /p:Platform="x86;x64" /m

让MSBuild针对配置和平台的每个组合为Target1中的每个项目启动构建:

Debug|x86
Debug|x64
Release|x86
Release|x64

(也优选并行)

我找到了一种方法来为一个乘法器(例如配置OR平台)做到这一点,但不是两个都使用ItemGroups但是如果我尝试添加第二个乘数它不会工作并且最终会像这样:

Debug|<blank>
Release|<blank>
<blank>|x86
<blank>|x64

感谢阅读!

1 个答案:

答案 0 :(得分:0)

  

MSBuild:如何为所有配置/平台组合构建目标?

如果要为build.xml构建所有配置,则需要使用此项目的设置属性构建四次,例如:

MSBuild.exe build.xml /target:Target1 /p:Configuration="Release" /p:Platform="x86"

或编写一个msbuild脚本来执行此操作:

<?xml version="1.0" encoding="utf-8"?>
  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
      <MSBuild Projects="a.sln" Properties="Configuration=Debug;Platform=x86" />
      <MSBuild Projects="a.sln" Properties="Configuration=Debug;Platform=x64" />
      <MSBuild Projects="a.sln" Properties="Configuration=Release;Platform=x86" />
      <MSBuild Projects="a.sln" Properties="Configuration=Release;Platform=x64" />
   </Target>
 </Project>

如果这些方法不够有效,您可以考虑在stijn的评论中使用交叉连接项目组。