2012-03-26 9 views
3

私は.NET4.0を使用していますが、互換性の理由から、私はC#の.NET2.0 dllにコンパイルしたいと思います。スクリプトには.NET4.0固有の機能が使用されていないはずなので、.NET2.0環境で正常に動作するはずです。 cscにはバージョン番号を指定できるコマンドライン構文がありますか?.NET4.0から.NET2.0 DLLをコンパイル

enter image description here

+3

のための私は、プロジェクトのプロパティで、ビルドターゲットとしてこれを指定することができると信じています。 –

+0

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

+0

.Net 4.0のみがインストールされているマシンに.Net 2.0 dllをインストールするとしますか?または.Net 2/3/3.5もインストールされますか? – Brook

答えて

6

あなたはcsc.exeと言っていますので、私はあなたがVisual Studioではなく、コマンドラインでビルドすると仮定しています。また、私は、msbuildがビルドマシンで利用できないと仮定しています。

csc.exeは、各バージョンに固有のものだと思います。たとえば、C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319というフォルダにはcsc.exeC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727にはcsc.exeという別のバージョンがあります。

.NET 2.0 DLLをビルドするには、csc.exeをv2.0フォルダ(C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)から参照する必要があります。

乾杯!

+0

素晴らしい。ありがとうございました。私は、システムに複数のフレームワークがインストールされていることを認識しませんでした。 – steventnorris

0

あなたはあなたがして(もちろんVS内から含まれます)のMSBuildでビルドする場合:プロジェクトのプロパティで、.NET 2.0にターゲットフレームワークのバージョンを設定することができますVisual Studioで

0

プロジェクトのプロパティでターゲットフレームワークを2.0に設定します。 2.0フレームワーク上に存在しないLINQのような機能を使用している場合、この方法は機能しません。 2.0フレームワークとの完全な互換性が必要な場合は、2.0用のコードを記述し、必要に応じて後で4.0をコンパイルする必要があります。

2

コマンドラインから手動でコンパイルする場合は、v2フレームワークcscを実行できませんか?

例えば(私のマシンからのパス)

C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe 

またはV4

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe 
関連する問題