2017-08-03 7 views
0

多くのターゲットを持つMSBuild XMLファイルがあります。いくつかはいくつかのプロジェクトファイルであり、いくつかは完全なソリューションです。MSBuild:すべての設定/プラットフォームの組み合わせのターゲットを構築する方法は?

私は何を探していることは、次のような何かをする方法です:

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

そして、MSBuildのは、コンフィギュレーションとプラットフォームの組み合わせごとに、宛先1各プロジェクトのビルドをキックオフしている:

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

(また、好ましくは並列で)

私は1個の乗算器(例えば構成やプラットフォーム)のためにそれを行う方法を見つけましたが、両方ItemGroupsを使用していませんでしたが、私はそれが動作しない第2の乗算器に追加しようと、このように終わる場合:

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

感謝を読み取るための!

+0

おそらく、クロス積が必要です。 https://stackoverflow.com/questions/15914145/cross-join-itemgroups-in-msbuild#15928871 – stijn

答えて

0

MSBuild:すべての設定/プラットフォームの組み合わせのターゲットを作成する方法は?

あなたがbuild.xmlのためのすべてのconfiguartionsを構築したい場合は、例えば、このプロジェクトのためのプロパティを設定すると、4回を構築する必要があります:

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のコメントで相互結合アイテムグループを検討できます。

関連する問題