同様の質問がありましたここただし、これは .NET 3.5 に固有のものです。具体的には、次のものを探しています。
- インストールされている .NET Framework のバージョンとサービス パックを確認する正しい方法は何ですか?
- 使用できるレジストリ キーのリストはありますか?
- フレームワークのバージョン間に依存関係はありますか?
ベストアンサー1
レジストリは正式な方法特定のバージョンのフレームワークがインストールされているかどうかを検出します。
必要なレジストリ キーは、探している Framework のバージョンに応じて変わります。
フレームワーク バージョン レジストリ キー ------------------------------------------------------------------------------------------ 1.0 HKLM\Software\Microsoft\.NETFramework\ポリシー\v1.0\3705 1.1 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v1.1.4322\インストール 2.0 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v2.0.50727\インストール 3.0 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.0\Setup\インストール成功 3.5 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.5\インストール 4.0 クライアント プロファイル HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client\Install 4.0 フル プロファイル HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\Install
一般的に探しているのは次のものです:
"Install"=dword:00000001
ただし、.NET 1.0 では、値はREG_SZ
数値 ( ) ではなく文字列 ( ) になりますREG_DWORD
。
サービス パック レベルの決定も同様のパターンに従います。
フレームワーク バージョン レジストリ キー ------------------------------------------------------------------------------------------ 1.0 HKLM\Software\Microsoft\Active Setup\インストールされたコンポーネント\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\バージョン 1.0[1] HKLM\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}\バージョン 1.1 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v1.1.4322\SP 2.0 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v2.0.50727\SP 3.0 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.0\SP 3.5 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.5\SP 4.0 クライアント プロファイル HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client\Servicing 4.0 フル プロファイル HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full\Servicing [1] Windows Media CenterまたはWindows XP Tablet Edition
ご覧のとおり、Windows Media Center または Windows XP Tablet Edition で実行している場合、.NET 1.0 の SP レベルの決定方法が変わります。繰り返しになりますが、.NET 1.0 では文字列値が使用されますが、その他はすべて DWORD を使用します。
.NET 1.0 の場合、これらのキーのいずれかの文字列値の形式は #,#,####,# です。最後の # はサービス パックのレベルです。
明示的に要求したわけではありませんが、フレームワークの正確なバージョン番号を知りたい場合は、次のレジストリ キーを使用します。
フレームワーク バージョン レジストリ キー ------------------------------------------------------------------------------------------ 1.0 HKLM\Software\Microsoft\Active Setup\インストールされたコンポーネント\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\バージョン 1.0[1] HKLM\Software\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}\バージョン 1.1 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v1.1.4322 2.0[2] HKLM\Software\Microsoft\NET Frameworkセットアップ\NDP\v2.0.50727\バージョン 2.0[3] HKLM\Software\Microsoft\NET Frameworkセットアップ\NDP\v2.0.50727\Increment 3.0 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.0\バージョン 3.5 HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v3.5\バージョン 4.0 クライアント プロファイル HKLM\Software\Microsoft\NET Framework セットアップ\NDP\v4\バージョン 4.0 フル プロファイル HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Version [1] Windows Media CenterまたはWindows XP Tablet Edition [2] .NET 2.0 SP1 [3] .NET 2.0 オリジナルリリース (RTM)
繰り返しになりますが、.NET 1.0 では文字列値が使用されますが、その他はすべて DWORD を使用します。
その他の注意事項
.NET 1.0 の場合、これらのキーのいずれかの文字列値の形式は です
#,#,####,#
。#,#,####
文字列の部分はフレームワークのバージョンです。.NET 1.1 の場合、バージョン番号を表すレジストリ キー自体の名前を使用します。
最後に、依存関係を見ると、.NET 3.0 は .NET 2.0 に追加機能を追加するため、.NET 3.0 がインストールされていると正しく判断するには、.NET 2.0 と .NET 3.0 の両方がインストールされていると評価される必要があります。同様に、.NET 3.5 は .NET 2.0 と .NET 3.0 に追加機能を追加するため、.NET 3.5 がインストールされていると正しく判断するには、.NET 2.0、.NET 3.0、.NET 3 のすべてがインストールされていると評価される必要があります。
.NET 4.0 では、CLR 2.0 と並行して実行できる CLR の新しいバージョン (CLR バージョン 4.0) がインストールされます。
.NET 4.5 のアップデート
v4.5
.NET 4.5 がインストールされている場合は、レジストリにキーはありません。代わりにHKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full
、キーに という値が含まれているかどうかを確認する必要がありますRelease
。この値が存在する場合は .NET 4.5 がインストールされており、存在しない場合はインストールされていません。詳細については、ここそしてここ。