コード:
Console.WriteLine(Environment.Version);
は、 .NET Framework 2.0、3.0、および 3.5 SP1に対して同じ結果 (2.0.50727.5448) を返します。インストールされている .NET プラットフォームの正確なバージョンを確認するにはどうすればよいですか?
サービス パックの粒度でバージョンを検出するには、レジストリ キーを読み取る必要があります。この記事では、探す必要があるキーと値のペアについて説明します。
たとえば、内部の値を見るとわかり3.5
ます3.5 SP1
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
"プレーン" 3.5 はInstall = 1
をSP1
持っていますが、 は持っていSP >=1
ます。
リンク先の記事の一番下までスクロールすると、表全体が表示されます。
System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()
2.0、3,0、3,5、および 3.5SPx はすべて、コア 2.0 ライブラリの同じセットに基づいています。基本的に、これらのバージョンはすべて 2.0 と追加のコンポーネントです。この回答には、バージョンのリストが含まれています: How do the .NET Framework, CLR and Visual Studio version numbers related to each other? および関連情報。
したがって、ランタイム環境のバージョンを尋ねると、2.0 が表示されます (私の知る限り、他のバリアントは 1、1.1、および 4.0 です)。
3/3.5/SP の区別が必要な場合は、@dasblinkenlight から回答がありました。それ以外の場合は、より多くの提案を得るために何をしようとしているのかを説明してください。