連載
» 2015年10月09日 05時00分 公開

Tech TIPS:.NET Frameworkのバージョンを確認する方法 (2/2)

[小川誉久, 島田広道,デジタルアドバンテージ]
前のページへ 1|2       

●.NET FrameworkのバージョンとSPレベルを確認するためのレジストリエントリ

 .NET Frameworkのインストーラーは、インストール時に自身のバージョンなどの情報を特定のレジストリエントリに記録する。前述のバージョン確認用バッチファイルは、そのレジストリエントリの読み出しと分析、バージョンなどの判定を自動実行するものだ。他のスクリプトや管理・展開ツールでも、同じ原理でバージョンの確認ができるだろう。そのために必要なレジストリエントリのパスおよび検出手順について、詳細を以下に記す。

■.NET Framework 1.0の場合

 .NET Framework 1.0がインストールされているかどうかは、以下のレジストリエントリの「Install」値で確認できる。

項目 内容
キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\
Full\v1.0.3705\1041\
Microsoft .NET Framework Full v1.0.3705 (1041)
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→インストールされていない
「1」→インストール済み
.NET Framework 1.0のインストール確認用レジストリエントリ

 .NET Framework 1.0のService Packレベルを確認するには、以下のレジストリエントリの「Version」値を参照する。最後の1桁がService Packレベル(SPレベル)を表している。

項目 内容
キー HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\
{78705f0d-e8db-4b2d-8193-982bdda15ecd}
 または
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\
{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}
値の名前 Version
値の型 REG_SZ
値の内容 1,0,3705,<SPレベル>
 <SPレベル>=0→Service Packが未適用(初期版)
 <SPレベル>=1→Service Pack 1適用済み
 <SPレベル>=2→Service Pack 2適用済み
 <SPレベル>=3→Service Pack 3適用済み
.NET Framework 1.0のService Packレベル確認用レジストリエントリ
.NET Framework 1.0がインストール済みであれば、上表の2種類のキーのうち、どちらかが存在するはずだ。「Version」値に格納されている文字列の最後の1桁から、そのService Packレベルが確認できる。

■.NET Framework 1.1〜3.5の場合

 これらのバージョンでは、バージョンごとに確認すべきレジストリキーが分かれている。しかし、「Install」値でインストールされているかどうか、「SP」値でService Packレベルをそれぞれ確認するという手順は共通だ。

項目 内容
.NET Framework 1.1(x86)用キー HKLM\SOFTWARE\Microsoft\
NET Framework Setup\NDP\v1.1.4322
.NET Framework 1.1(x64)用キー HKLM\SOFTWARE\Wow6432Node\Microsoft\
NET Framework Setup\NDP\v1.1.4322
.NET Framework 2.0用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v2.0.50727
.NET Framework 3.0用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v3.0
.NET Framework 3.5用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v3.5
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→インストールされていない
「1」→インストール済み
Service Packレベルの確認用
値の名前 SP
値の型 REG_DWORD
値の内容 「0」→Service Packが未適用(初期版)
「1」→Service Pack 1適用済み
「2」→Service Pack 2適用済み
.NET Framework 1.1〜3.5のインストールおよびService Packレベル確認用レジストリエントリ
バージョンごとに確認用キーは分かれている。「Install」値や「SP」値の内容とその確認方法については各バージョン共通だ。

■.NET Framework 4の場合

 .NET Framework 4では、「Install」値でインストールの有無を調べ、「Version」値でVer.4か(それともVer.4.5以降なのか)確認する。

 また、.NET Framework 4のインストール形態には「クライアントプロファイル(Client Profile)版」と「フル(Full)版」の2種類が存在する。前者はクライアントPC向けでASP.NETなどが省かれており、後者は全機能を搭載している(フル版はクライアントプロファイル版を含んでいる)。そのため、これらも確認した方がよいだろう。

項目 内容
クライアントプロファイル用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Client
フル用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→ランタイムがインストールされていない
「1」→ランタイムがインストール済み
マイナーバージョンの確認用
値の名前 Version
値の型 REG_SZ
値の内容 「4.0.〜」→バージョンは4
.NET Framework 4のインストール確認用レジストリエントリ
「Install」値でインストールされているかどうか、また「Version」値でインストール済みバージョンをそれぞれ確認する。.NET Framework 4の場合は「クライアントプロファイル」と「フル」という2種類のインストール形態があり、それぞれ専用のキーを参照する必要がある。

 .NET Framework 4のService Packはリリースされていないため、Service Packレベルを確認する必要はない。

■.NET Framework 4.5.x/4.6の場合

 これらのバージョンでは、「Install」値でインストールの有無を調べつつ、「Version」値と「Release」値でマイナーバージョンを確認する。

項目 内容
キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→ランタイムがインストールされていない
「1」→ランタイムがインストール済み
Ver.4.5.x/4.6の判別用
値の名前 Version
値の型 REG_SZ
値の内容 「4.5.〜」→バージョンは4.5.x
「4.6.〜」→バージョンは4.6
Ver.4.5.xのマイナーバージョンの確認用
値の名前 Release
値の型 REG_DWORD
値の内容 「378389」→バージョンは4.5
「378675」または「378758」→バージョンは4.5.1
「379893」→バージョンは4.5.2
.NET Framework 4.5.x/4.6のインストール確認用レジストリエントリ
「Install」値でインストールされているかどうかを、また「Version」値と「Release」値でインストール済みバージョンをそれぞれ確認する。

 .NET Framework 4.5.x/4.6のService Packはリリースされていないため、Service Packレベルを確認する必要はない。

●日本語Language Packがインストールされているかどうかを確認する

 .NET Framework 1.1以降では、ランタイムをインストールしただけではエラーメッセージなどが英語で表示されることがある。メッセージを日本語化するには、バージョンごとに「日本語Language Pack」という専用のパッケージをインストールする必要がある。そのため、この日本語Language Packについても、インストールされているかどうか確認した方がよい。

 なお、.NET Framework 1.0はランタイム自体が日本語化されているため、このような現象は生じない。

■.NET Framework 1.1〜3.5の場合

 .NET Framework 2.0〜3.5では、ランタイムのService Packレベルを上げた場合、同じService Packレベルの日本語Language Packをインストールする必要がある。そのため、例えばランタイムに最新のService Packを適用したが日本語Language Packの更新を忘れると、ランタイムと日本語Language Packの間でService Packレベルが食い違う、という事態が生じる(このときWindows Updateを実行しても日本語Language Packが更新されないこともある)。

 食い違ったままだと正しいエラーメッセージが表示されない可能性もあるので、日本語Language PackのService Packレベルも確認した方がよい。

項目 内容
.NET Framework 1.1(x86)用キー HKLM\SOFTWARE\Microsoft\
NET Framework Setup\NDP\v1.1.4322\1041
.NET Framework 1.1(x64)用キー HKLM\SOFTWARE\Wow6432Node\Microsoft\
NET Framework Setup\NDP\v1.1.4322\1041
.NET Framework 2.0用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v2.0.50727\1041
.NET Framework 3.0用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v3.0\1041
 または
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v3.0\setup\1041
.NET Framework 3.5用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v3.5\1041
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→日本語Language Packがインストールされていない
「1」→日本語Language Packがインストール済み
Service Packレベルの確認用
値の名前 SP
値の型 REG_DWORD
値の内容 「0」または存在しない→初期版用の日本語Language Packがインストール済み
「1」→Service Pack 1用の日本語Language Packがインストール済み
「2」→Service Pack 2用の日本語Language Packがインストール済み
.NET Framework 1.1〜3.5の日本語Language Pack確認用レジストリエントリ
「1041」キーにある「Install」値でインストールされているかどうかを確認する。また.NET Framework 2.0/3.0/3.5では、「SP」値で日本語Language PackのService Packレベルを確認する必要もある。

■.NET Framework 4の場合

 ランタイムのバージョン確認の場合と比べて異なるのは「1041」サブキー以下を確認することだけで、「Install」値および「Version」値を調べる点は共通だ。

項目 内容
クライアントプロファイル用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Client\1041
フル用キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full\1041
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→日本語Language Packがインストールされていない
「1」→日本語Language Packがインストール済み
マイナーバージョンの確認用
値の名前 Version
値の型 REG_SZ
値の内容 「4.0.〜」→バージョンは4
.NET Framework 4の日本語Language Pack確認用レジストリエントリ
「1041」キーにある「Install」値でインストールされているかどうか、また「Version」値でインストール済みバージョンをそれぞれ確認する。

■.NET Framework 4.5.x/4.6の場合

 これらのバージョンでも、ランタイムのバージョン確認の場合と比べて異なるのは「1041」サブキー以下を確認することだけで、「Install」「Version」「Release」の各値を調べる点は共通だ。

項目 内容
キー HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full\1041
インストールの有無の確認用
値の名前 Install
値の型 REG_DWORD
値の内容 「0」または存在しない→日本語Language Packがインストールされていない
「1」→日本語Language Packがインストール済み
Ver.4.5.x/4.6の判別用
値の名前 Version
値の型 REG_SZ
値の内容 「4.5.〜」→バージョンは4.5.x
「4.6.〜」→バージョンは4.6
Ver.4.5.xのマイナーバージョンの確認用
値の名前 Release
値の型 REG_DWORD
値の内容 「378389」→バージョンは4.5
「378675」または「378758」→バージョンは4.5.1
「379893」→バージョンは4.5.2
.NET Framework 4.5.x/4.6の日本語Language Pack確認用レジストリエントリ
「1041」キーにある「Install」値でインストールされているかどうかを、また「Version」「Release」の各値でインストール済みバージョンをそれぞれ確認する。

■関連リンク


■更新履歴

【2015/10/09】.NET Framework 4.5.1/4.5.2/4.6およびWindows 8.1/Windows 10/Windows Server 2012 R2の情報を反映しました。

【2014/05/15】図「各Windows OSにインストール可能な.NET Frameworkランタイムのバージョン」で、Windows OSのUIから有効化できる.NET Frameworkを、OSに「付属」していると表していました。しかしOSによっては、有効化の際にオンラインでインストールしている場合があり、「付属」という表現は相応しくないため、該当箇所を修正させていただきました。

【2012/10/26】.NET Framework 4.5およびWindows 8/Windows Server 2012の情報を反映しました。

【2011/11/25】.NET Framework 4の日本語Language Packの検出方法を追記するとともに、バージョン確認用バッチ・ファイルでも検出できるようにしました。また、.NET Framework 3.0の日本語Language Packの検出において、確認すべきレジストリ・キーを追加しました。そのほか、本文全般を整理しました。

【2010/04/23】.NET Framework 4およびWindows 7/Windows Server 2008 R2の情報を反映しました。

【2009/02/13】.NET Framework 3.5など最新情報を追加しました。またバージョン確認方法をレジストリ参照に統一し、本文を大幅に改訂しました。

【2007/06/01】.NET Framework 2.0および3.0に関する情報を追加し、本文を改訂しました。

【2004/09/18】.NET Framework 1.1および最新Service Pack情報などを追加し、これに併せて本文を改訂しました。

【2002/10/29】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。