2012-04-20 8 views
3

コード:.NETプラットフォームの正確なバージョンを学ぶには?

Console.WriteLine(Environment.Version); 

戻り.NETフレームワーク2.0、3.0、および3.5 SP1のために同一の結果(2.0.50727.5448)。インストールされている.NETプラットフォームの正確なバージョンを知るにはどうすればよいですか?

+1

類似:http://stackoverflow.com/questions/1565434/howto-find-net-version – Hansi

+1

http://stackoverflow.com/questions/951856/is-there-an-easy-way-to-check -net-framework-verison-using-c –

+6

はい、これらのバージョンのフレームワークはすべて同じランタイムバージョンを使用します。 – Oded

答えて

4

サービスパックの細かさでバージョンを検出するには、レジストリキーを読み取る必要があります。 This articleは、あなたが探す必要があるキーと値のペアを説明しています。 SP1SP >=1を有している

たとえば、あなたが

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 

内の値を見ることで、3.5 SP1から3.5を伝えることができ、 "プレーン" 3.5は、Install = 1を持っています。

リンクの記事の一番下にスクロールすると、表全体が表示されます。

+0

コンピュータ上で利用可能なすべてのものではなく、現在のプラットフォームのみを指定する必要があります –

+0

コードが実行されているプラ​​ットフォームで登録情報がわかりますか? –

4
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion() 
+2

いいえ、それは間違った応答です。この場合、私はそれを受け取ります。(v2.0.50727 –

+0

)@Bush:あなたのコードは実際に2.0.50727で動かないのですか?これは、実行時にロードされたdllを調べることで確認できます。 – Vlad

+0

@Vlad:MS Visual Studioプロジェクトでは、2.0,3.0,3.5 SP1のターゲットプラットフォームを変更し、上記の両方のコードオプションに対して同じ値を受け取ります。 –

3

2.0,3,0,3,5および3.5SPxは、コア2.0ライブラリの同じセットに基づいています。これらのバージョンの本質的にすべては2.0プラス追加のコンポーネントです。この回答にはバージョンの一覧が含まれています:How do the .NET Framework, CLR and Visual Studio version numbers relate to each other?と関連情報

ランタイム環境のバージョンを調べると、2.0が得られます(私の知る限り、他のバリエーションは1,1,1 4.0です)。

3/3.5/SPの区別が必要な場合は、@ dasblinkenlightが答えを出しました。それ以外の場合は、あなたが何をしようとしているかを説明し、より多くの提案を得る。

関連する問題