4

対象となるプラットフォームのバージョンを検出するために、C# コンパイラに定義済みの定数はありますか?

プロジェクト オプションでプラットフォームを設定できますが、.NET 2 および .NET 3.5 の単一ソースを作成するにはどうすればよいですか?

編集:コードを一度書いて、 #if CLR_VERSION35 のようなもので動作を切り替えてから、さまざまな構成を変更できるようにしたいです。

逆の質問: CLR35 および CLR20 構成を作成した場合、これに基づいてターゲット プラットフォームを選択することは可能ですか? このオプションは VS2008 では利用できず、MSBUILD についてはまだよくわかりません。

4

3 に答える 3

5

.NET Framework 3.5 は 2.0 のスーパーセットであるため、すべての 2.0 アプリは変更しなくても 3.5 上で実行できます。これはスーパーセットであるため、アプリが 2.0 であることがわかった場合に 3.5 の機能を使用しないようにする方法はありません。とにかく、それは意味がありません。

2.0 をターゲットにする必要があり、必要なものを 2.0 で記述できる場合は、それが適切な方法です。3.5 でもアプリを正常に実行できます。事実上、最小公分母を記述するか、インストーラーに 3.5 ランタイム再頒布可能ファイルを含めて、顧客がアプリに適した環境を利用できるようにする必要があります。

于 2009-03-11T15:29:41.503 に答える
2

VS2008 では、プロジェクトのプロパティ (ソリューション エクスプローラー、プロジェクトを右クリック) でターゲット フレームワークを設定できます。新しいプロジェクトを作成するときにもオプションがあり、新しいプロジェクト ウィンドウの右上にドロップダウンがあります。

于 2009-03-11T15:23:47.027 に答える
1

DEBUG と RELEASE 以外には、私が知る限りありません。検索を保存し、プロジェクトのプロパティ、[ビルド] タブ、[条件付きコンパイル シンボル] 内で独自に定義するだけです。

それが役に立ったら、このブログに詳細があります

于 2009-03-11T15:40:56.377 に答える