Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

.NET Frameworkのバージョンを確認する方法

解説をスキップして操作方法を読む

デジタルアドバンテージ 島田 広道
2002/10/29
2011/11/25 更新
対象OS
Windows 2000
Windows XP
Windows Server 2003
Windows Vista
Windows Server 2008
Windows 7
Windows Server 2008 R2
Visual Studioなどで開発した.NETアプリケーションを実行するには、Windows環境に.NET Frameworkランタイムが必要である。
しかし.NET Frameworkランタイムは、Windows OSによってはデフォルトで組み込まれておらず、明示的にインストールしなければならない場合がある。
.NETアプリケーションを展開するには、対象コンピュータにランタイムがインストールされているかどうか、またどのService Packまで適用されているかを確認する必要がある。それには特定のレジストリ・エントリを参照すればよい。

  解説

 .NET Frameworkは、Visual Studioなどで開発したCLR(Common Language Runtime)ベースのプログラム(一般には「.NETアプリケーション」などと呼ばれ、「マネージ・コード」で構成される)を実行するために必要なランタイムであり、実行するにはWindows環境に.NET Frameworkが組み込まれている必要がある。

 しかし、Windows OSによってはデフォルトで.NET Frameworkがインストールされていないことがある。また.NET Frameworkには複数のバージョンがあり、利用したい.NETアプリケーションにあわせて適切なバージョンの.NET Frameworkをインストールしておく必要もある。それには、どのバージョンの.NET Frameworkがインストール済みか、確認しなければならない。

 そこで本稿では、.NET Frameworkのバージョンについて簡単に紹介しつつ、それを踏まえたバージョン確認の方法を紹介する。

複数のバージョンが混在している.NET Frameworkの現状

 2011年11月時点で.NET Frameworkは、最初のVer.1.0の後、マイナー・バージョンアップを加えたVer.1.1、機能を追加したVer.2.0およびVer.3.0/3.5/4が提供されている(まだ開発中だがVer.4.5も登場している)。また、これらのバージョンに対して、不具合の修正などを行うService Packも提供されている。そして上位バージョンは必ずしも下位バージョンとの完全な互換性を維持していない。結果として、現在は複数のバージョンの.NET Frameworkが混在している状態だ。

 これまでに提供されている.NET FrameworkのバージョンとService Packを簡単にまとめると次のようになる。

.NET Frameworkバージョン 提供されているService Pack(SP)レベル
.NET Framework 1.0 SPなしの初期版、SP1、SP2、SP3
.NET Framework 1.1 SPなしの初期版、SP1
.NET Framework 2.0 SPなしの初期版、SP1、SP2
.NET Framework 3.0 SPなしの初期版、SP1、SP2
.NET Framework 3.5 SPなしの初期版、SP1
.NET Framework 4 SPなしの初期版
.NET Frameworkの各バージョンとService Packレベル

OS別の.NET Frameworkのインストール状況
Windows OSと、インストール可能な.NET Frameworkのバージョンの関係。ただし「OSに付属」とされているバージョンの.NET Frameworkが実際にプレインストールされているかどうかは、インストール時の設定などに依存する。
*1 Windows XP Tablet PC/Media Centerには.NET Framework 1.0が付属している。Professional/Homeの各エディションには付属していない。
*2 Server Core構成のWindows Server 2008 R2の場合、.NET Framework 3.5はサブセット版であり、Windows Presentation Foundation(WPF)が利用できない。
*3 .NET Framework 4をインストールするには、Windows Server 2008 R2 Server CoreにService Pack 1を適用する必要がある。また、WPFは利用できない。

 .NET Frameworkのバージョンの詳細については、次の記事を参照していただきたい。

 また、.NET Frameworkのインストール手順については以下の記事を参照していただきたい。

  操作方法

インストール済みの.NET Frameworkのバージョンをバッチ・ファイルで確認する

 インストール済みの.NET Frameworkのバージョンは、そのコンピュータのレジストリの特定エントリを参照すれば確認できる。しかし、詳細は後で説明するが、確認すべきレジストリ・エントリは.NET Frameworkのバージョンによって異なるため、レジストリ・エディタを手動で操作して確認するのは簡単ではない。

 そこで、レジストリを自動的に参照して.NET Frameworkのバージョンを検出・表示するバッチ・ファイルを用意した。

TIPS「プログラムを管理者モードで実行する
TIPS「ワンクリックでコマンド・プロンプトを管理者モードで実行する

 このZIPファイルを展開すると「checkvdnfw_cmd.txt」というファイルが生成される。これを「checkvdnfw.cmd」にリネームして、書き込み可能なフォルダに保存する(一時ファイルを作成するため)。管理者モードで起動したコマンド・プロンプトから、引数なしでcheckvdnfw.cmdを実行すると、実行したコンピュータに組み込まれている.NET Frameworkのバージョンを表示する。未インストールの.NET Frameworkのバージョンは表示しない。

TIPS「リモートからレジストリを操作する

 また引数に「\\<コンピュータ名>」を指定すると、リモートからそのコンピュータの.NET Frameworkのバージョンを調査して表示できる。ただし、checkvdnfw.cmdを実行するコンピュータから、対象のリモート・コンピュータのRemote Registryサービスに接続できる必要がある(詳細は関連記事を参照)。

C:\Temp> checkvdnfw.cmd \\UserPC01
----- \\UserPC01 -----
.NET Framework 1.0 Service Pack 3 がインストール済みです
.NET Framework 1.1 Service Pack 1 がインストール済みです
 日本語Language Pack(初期版)がインストール済みです
.NET Framework 2.0 Service Pack 2 がインストール済みです
 日本語Language Pack(Service Pack 2)がインストール済みです
.NET Framework 3.0 Service Pack 2 がインストール済みです
 日本語Language Pack(Service Pack 2)がインストール済みです
.NET Framework 3.5 Service Pack 1 がインストール済みです
 日本語Language Pack(Service Pack 1)がインストール済みです
.NET Framework 4 (フル版)がインストール済みです
 日本語Language Pack(初期版)がインストール済みです
checkvdnfw.cmdの実行例
リモート・コンピュータを調査した例。インストール済みの.NET FrameworkランタイムのバージョンおよびService Packレベル、日本語Language Pack(後述)の情報を表示する。

 なお、Windows 2000でこのバッチ・ファイルを実行する場合は、あらかじめTIPS「コマンド・プロンプトでレジストリを操作する」を参照してreg.exeコマンドを実行可能にしておく必要がある。

.NET FrameworkのバージョンとService Packを確認するためのレジストリ・エントリ

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

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

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

 .NET Framework 1.0のService Packレベルを確認するには、以下のレジストリ値を参照する。内容のうち、最後の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
値の内容 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の場合
 これらのバージョンの.NET Frameworkは、バージョンごとに確認すべきレジストリ・キーが分かれている。インストールされているかどうか、またService Packレベルを確認する手順は共通である。

項目 内容
.NET Framework 1.1用キー HKLM\SOFTWARE\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
値の内容 0または存在しない→インストールされていない
1→インストール済み
値の名前 SP
値の内容 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のインストーラには「クライアント・プロファイル(Client Profile)版」と「フル(Full)版」の2種類が存在する。前者はクライアントPC向けでASP.NETなどが省かれており、後者は全機能を搭載している(フル版はクライアント・プロファイル版を含んでいる)。両方とも、レジストリ・エントリこそ異なるものの、インストールの有無を確認する手順は前述の.NET Framework 1.1〜3.5の場合と同じである。

項目 内容
.NET Framework 4
クライアント・プロファイル用キー
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Client
.NET Framework 4
フル用キー
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full
値の名前 Install
値の内容 0または存在しない→ランタイムがインストールされていない
1→ランタイムがインストール済み
.NET Framework 4のインストール確認用レジストリ・エントリ
「クライアント・プロファイル」と「フル」という2種類のランタイムをそれぞれ検出できる。ただし、フル版はクライアント・プロファイル版を含んでいるため、フル版をインストールすると上表のFullキーだけではなくClientキーも作成される。

 なお、2011年11月時点では.NET Framework 4のService Packはまだリリースされていないため、Service Packレベルの検出方法は不明である。

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

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

 .NET Framework 2.0/3.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レベルも確認した方がよい。

 日本語Language Packのインストールの有無およびService Packレベルは、以下のレジストリ値で確認できる。End of Article

項目 内容
.NET Framework 1.1用キー HKLM\SOFTWARE\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
.NET Framework 4
クライアント・プロファイル用キー
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Client\1041
.NET Framework 4
フル用キー
HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\
v4\Full\1041
値の名前 Install
値の内容 0または存在しない→日本語Language Packがインストールされていない
1→日本語Language Packがインストール済み
値の名前 SP
値の内容 0または存在しない→初期版用の日本語Language Packがインストール済み
1→Service Pack 1用の日本語Language Packがインストール済み
2→Service Pack 2用の日本語Language Packがインストール済み
……
.NET Framework 1.1〜4の日本語Language Pack確認用レジストリ・エントリ
「1041」キーにある「Install」値でインストールされているかどうかを確認する。.NET Framework 2.0/3.0/3.5では、「SP」値で日本語Language PackのService Packレベルをそれぞれ確認する必要もある(.NET Framework 4は執筆時点でService Packがリリースされていないため、SPキーの確認は不要)。

この記事と関連性の高い別のWindows TIPS
.NET Frameworkのバージョンを整理する
Windows Updateによる.NET Framework 3.5 SP1のインストールをブロックする
Internet Explorerのバージョンを確認する方法
デスクトップにOSバージョン/ビルド番号を表示する方法(非表示にする方法)
Service Packのインストール・ログを記録/確認する
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

更新履歴
【2004/09/18】.NET Framework 1.1および最新Service Pack情報などを追加し、これに併せて本文を改訂しました。
【2007/06/01】.NET Framework 2.0および3.0に関する情報を追加し、本文を改訂しました。
【2009/02/13】.NET Framework 3.5など最新情報を追加しました。またバージョン確認方法をレジストリ参照に統一し、本文を大幅に改訂しました。
【2010/04/23】.NET Framework 4およびWindows 7/Windows Server 2008 R2の情報を反映しました。
【2011/11/25】.NET Framework 4の日本語Language Packの検出方法を追記するとともに、バージョン確認用バッチ・ファイルでも検出できるようにしました。また、.NET Framework 3.0の日本語Language Packの検出において、確認すべきレジストリ・キーを追加しました。そのほか、本文全般を整理しました。

「Windows TIPS」

TechTargetジャパン

Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH