現在、2つの異なるSKUのAとBを持つVS2012 .NET 4製品があります。 通常の設定Debug
とRelease
もあり、現在4つの設定があります。x86とx64用のVS2012ソリューションを同時に構成する方法
- DEBUGA
- DebugBストアドプロシージャ
- ReleaseA
- ReleaseBそれはx64のは倍増する追加明らかにこれ
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugA|x86' "> <OutputPath>..\bin\DebugA\</OutputPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseA|x86' "> <OutputPath>..\bin\ReleaseA\</OutputPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugB|x86' "> <OutputPath>..\bin\DebugB\</OutputPath> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseB|x86' "> <OutputPath>..\bin\ReleaseB\</OutputPath> </PropertyGroup>
のようになります.csprojファイルのいずれかに探し
これは4つから8つの異なる組み合わせからなり、 VSはAnyCPUプラットフォームの設定を追加するようにも見えます。すべての8つが30以上のプロジェクトで正しく構成されていることを確認するには、VSで多くのクリックが必要です。間違いを犯すのは本当に簡単です。
マルチターゲティングの問題が解決されている他のいくつかの質問を読んでいます。また、参照パスに$ {Platform}を使用することで、さまざまなプラットフォームに異なる参照を含めることを提案しました。私は、私は私のプロジェクトの設定のために似た何かができる考え出しので、マルチプラットフォームをやろうとしたとき、私はこれを試してみました:
<PropertyGroup Condition=" '$(Configuration)' == 'DebugA' Or '$(Configuration)' == 'DebugB' ">
<OutputPath>..\bin\${Platform}\${Configuration}\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'ReleaseA' Or '$(Configuration)' == 'ReleaseB' ">
<OutputPath>..\bin\${Platform}\${Configuration}\</OutputPath>
</PropertyGroup>
理論的には、私はちょうど2つを持つすべての8つの異なる組み合わせのために必要なものを私に与えるべきです、ブロック。しかし、今VSを見て、私はneitehr x86とx64をプロジェクトの利用可能なビルドプラットフォームとして見ることができません。 VSが実際にビルドプラットフォームを格納する唯一の方法は、プロパティグループの厄介な条件としてエンコードすることです。そうではないと言ってください...
VSとうまく動作する「すばらしい」マルチプラットフォームの.csprojを作成する方法はありませんか?
VSが各プロジェクトのプロパティウィンドウにプラットフォームを表示できないのに、msbuildが正しいプラットフォームを使用すると信じて、.csprojsを作成してVSで編集しないことにしましたか?
編集:
questonは少し混乱だったようだ。明確にするために、私は、セットアッププロジェクトの構成を維持し、概要、および私の解決策のビルド構成する方法を知りたいです、多くのプロジェクトと8つのconfig | platformの組み合わせがある場合私は手動でこれを行う方法を知っていますが、私の心を失うことなく、または200 +プロパティページの1つでミスを犯すことはありません。
"設定、管理、概要"からあなたが望むものを明確にし、今日挑戦しているものを明確にする必要があると思います。 –
(config、platform、project)の1つの組み合わせのプロパティは、1つの低速読み込みダイアログページで設定されます。これは100以上の組み合わせを持つ行列であることが多いため、これは面倒でエラーが発生しやすいです。私は効率的にそれを維持するためには、すべての構成を1つのマトリックスで見る必要があります。または、例のように変数を使用して構成された組み合わせの数を制限する方法が必要です。 –