2011-08-16 11 views
8

.Net 3.5と.Net 4.0の両方のプロジェクトをコンパイルする必要があります。これを行う最も低摩擦の方法は何ですか?このプロジェクトを別のアセンブリから参照する場合、どのランタイムが対象とされているかをどのように判断するのですか?あるいは、単にバイナリを直接参照するべきですか?.Net 3.5と4の両方のプロジェクトを同時にコンパイルする方法

+2

は、実際の違いがありますあなたのコードかでありますさまざまなプラットフォームをターゲットとするときにどのDLLを参照していますか? – alun

+1

コードで.NET4の機能を使用しない場合、.NET 4としてコンパイルする必要があるのはなぜですか? .NET4プロジェクトは.NET 3.5コンパイル済みバイナリを問題なく使用できます。 – jgauffin

+0

いいえ、コードに違いはありません。すべてのアセンブリは2.0バージョンのライブラリを参照します。 –

答えて

9

これは、2つのcsprojファイルを持つことで簡単に実行できます。次に、バージョン、参照、ビルドシンボルなどを簡単に設定できます。両方のファイルリストを維持することを避けるために、私は毛布を使用含まれ - すなわち

私は(二次.csprojに)持っている:

<Compile Include="..\TheMainProject\**\*.cs" /> 

これは、「内のすべての.csファイルをコンパイル言うと、 \ TheMainProject "の下にある

+0

ありがとう、私はそれが私が行くものだと思います。 –

1

なぜあなたはそれを必要としますか?ポスト/前

http://msdn.microsoft.com/en-us/library/ms164311.aspx

からMSBuild.exe MyProject.proj /ToolsVersion:4.0が

引数 "toolversion" を参照してください、あなたは別のフレームワークをターゲットにするのMSBuildを実行できるタスクを構築して

そして

http://msdn.microsoft.com/en-us/library/ee395432.aspx

を見ている。しかし、まだ、私はどんなsituatが表示されません私が必要とするイオン。

+0

完全なランタイム、Silverlight、モノドローイングをターゲットにしても同様の状況があります。もちろん、コードが.netバージョン間で少し違う場合もあります。おそらく、フレームワークの新しいバージョンでのみサポートされている機能を追加します。 – CodesInChaos

関連する問題