ソリューションエクスプローラーで、ルートノード→構成マネージャーを右クリックします。内の各プロジェクトに32ビットとしてビルドするように指示するソリューション全体の構成を定義する必要があります。(注:少なくとも1つのプロジェクトを32ビットとしてビルドするように設定したことがある場合は、おそらくすでに1つあります。)ステップバイステップのウォークスルーについては、MSDNブログ投稿のソリューション構成を参照してください。
次に、チームビルド .proj
/.targets
ファイルで目的の「プラットフォーム」と「フレーバー」を指定します。例えば:
<ConfigurationToBuild Include="Release|x86">
<FlavorToBuild>Release</FlavorToBuild>
<PlatformToBuild>x86</PlatformToBuild>
</ConfigurationToBuild>
これらのプロパティセクションを複数指定して、いくつかの組み合わせを作成できます。「Release|x86」文字列(またはそのような文字列)を.sln
ファイルから直接コピーして貼り付け、完全に一致するようにします。ソリューションエクスプローラーから直接取得することはできません。
あなたのコメントについて:
MSBuildプロパティの評価は、宣言型と命令型のスタイルが混在しているため、かなり複雑です。詳細については、ブログ投稿MSBuildPropertyEvaluationを参照してください。私はその繊細さに頼りたくない。
コマンドラインで指定されたプロパティが他のすべてをオーバーライドする必要があるのは事実ですが、チームビルドには別の複雑さの層があります。ComputeConfigurationListタスクは、通常のタスクとしてではなく、再帰的なMSBuild呼び出しを介して繰り返し呼び出されます。これを実現する方法は、のような通常のプロパティを取得し、構成ごとに1回、オンザフライで生成される(など)PlatformToBuild
と呼ばれる一連のグローバルプロパティにラップすることです。ConfigurationToBuild.PlatformToBuild
これにより、Team Buildエンジンは内部的にはるかに柔軟になりますが、必要なコマンドライン動作のハッキングも難しくなります。
コマンドラインで直接設定ConfigurationToBuild.PlatformToBuild
してみることができます—うまくいくかもしれませんが、よくわかりません。ただし、単一のビルド定義で複数の構成をビルドすることを確実に防ぐことができます。このため、私は上記のアドバイスに固執しています。