9

重複の可能性:
条件付きコンパイルとフレームワークターゲット

.NET 4で機能するコードがいくつかありますが、.NET3.5では機能しません。.NET 3.5では、Windowsへの相互運用呼び出しを使用する必要があります。

どちらの場合も、「ifdef」を使用して別のコードパスを使用したいと思います(最終的には.NET 3.5コードを廃止します)。

コードが.NET4でコンパイルされるタイミングを識別するための事前定義されたディレクティブ値はありますか?

事前定義されたすべてのディレクティブ(、、など)との適切なリンクはありDEBUGますTRACEか?以下のページには、ディレクティブのみが記載されており、標準の事前定義値は記載されていません。

C#プリプロセッサディレクティブ

4

2 に答える 2

15

私はこれがあなたが探しているものだと思います:

#if NET40   
...  
#elif NET35  
...  
#else NET20  
...  
#endif  
于 2011-02-03T18:30:04.340 に答える
7

コンパイラは、特定の.NETFrameworkのバージョンを認識していません。表示されるのは参照アセンブリだけです。また、プログラムがターゲットの.NETバージョンで実行されるという保証もありません。2.0用にビルドした場合でも、.NET4.0CLRで実行することはかなり可能です。

Environment.Version代わりに使用してください。

于 2011-02-03T18:41:02.313 に答える