.NET対応アプリケーションを利用するには、適切なバージョンの.NET Frameworkのインストールが欠かせない。どのバージョンの.NET Frameworkがインストール済みか、調べる方法は? 簡単に確認できるバッチファイルも提供。
対象ソフトウェア:Windows 2000/Windows XP/Windows Vista/Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2003/Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2、.NET Framework 1.0/1.1/2.0/3.0/3.5/4/4.5/4.5.1/4.5.2/4.6
.NET Frameworkとは、Visual Studioなどで開発したCLR(Common Language Runtime)ベースのプログラム(.NETアプリケーション)を実行するために必要なランタイムである。.NETアプリケーションを実行するには、Windows環境に.NET Frameworkが組み込まれている必要がある。
しかし、Windows OSによってはデフォルトで.NET Frameworkがインストールされていないことがある。また.NET Frameworkには複数のバージョンがあり、利用したい.NETアプリケーションに合わせて適切なバージョンの.NET Frameworkをインストールしておく必要もある。それには、どのバージョンの.NET Frameworkがインストール済みか、確認しなければならない。
そこで本TIPSでは、.NET Frameworkのバージョンについて簡単に紹介しつつ、それを踏まえたバージョン確認の方法を紹介する。
.NET Frameworkランタイムは、最初のVer.1.0から最新のVer.4.6まで着実にバージョンアップを重ねてきた。しかし、上位バージョンは必ずしも下位バージョンとの完全な互換性を維持していない。また、バージョンの異なる複数のランタイムが一つのシステム内で共存できる(詳細は右上の関連記事を参照)。
結果として、現在は複数のバージョンの.NET Frameworkが混在している状態だ。これまで提供されてきた.NET FrameworkのバージョンおよびそのService Packを簡単にまとめると、次のようになる。
.NET Frameworkバージョン | 提供されているService Pack(SP)レベル |
---|---|
SPなしの初期版、SP1、SP2 | |
.NET Framework 3.0 | SPなしの初期版、SP1、SP2 |
.NET Framework 3.5 | SPなしの初期版、SP1 |
.NET Framework 4 | SPなしの初期版 |
.NET Framework 4.5.x | SPなしの初期版 |
.NET Framework 4.6 | SPなしの初期版 |
.NET Frameworkの各バージョンとService Packレベル Ver.1.0/1.1は、すでにマイクロソフトによるサポートが終了している。2016年1月にはVer.4/4.5/4.5.1のサポートも終了する予定だ。 |
またWindows OSによっては、インストールできないバージョンの.NET Frameworkも存在する。
■クライアントWindows OS
■Windows Server
.NET Frameworkのサポート終了については、TIPS「各Windows OSでの.NET Frameworkのサポート終了時期を知る」を参照していただきたい。
.NET Frameworkのインストーラーは、インストール時に自身のバージョンなどの情報を特定のレジストリエントリに記録する。そのため、インストール済みの.NET Frameworkのバージョンは、そのコンピューターのレジストリの特定エントリを参照すれば確認できる。
だが、確認すべきレジストリエントリは.NET Frameworkのバージョンによって異なるため、レジストリエディタを手動で操作して確認するのは簡単ではない(詳細は後述)。
そこで、レジストリを自動的に参照して.NET Frameworkのバージョンを検出表示するバッチファイルを用意した。
このZIPファイルを展開すると「checkvdnfw_cmd.txt」というファイルが生成される。これを「checkvdnfw.cmd」にリネームして、書き込み可能なフォルダーに保存する(一時ファイルを作成するため)。管理者モードで起動したコマンドプロンプトから、引数なしでcheckvdnfw.cmdを実行すると、実行したコンピューターに組み込まれている.NET Frameworkのバージョンを表示する。未インストールの.NET Frameworkのバージョンは表示しない。
また引数に「\\<コンピューター名>」を指定すると、リモートからそのコンピューターの.NET Frameworkのバージョンを調査して表示できる。ただし、checkvdnfw.cmdを実行するコンピューターから、対象のリモートコンピューターのRemote Registryサービスに接続できる必要がある(詳細は右上の関連記事を参照)。
C:\Temp>checkvdnfw.cmd \\UserPC01
----- \\UserPC01 -----
.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.6 がインストール済みです
日本語Language Packがインストール済みです
.NET Frameworkのインストーラーは、インストール時に自身のバージョンなどの情報を特定のレジストリエントリに記録する。前述のバージョン確認用バッチファイルは、そのレジストリエントリの読み出しと分析、バージョンなどの判定を自動実行するものだ。他のスクリプトや管理・展開ツールでも、同じ原理でバージョンの確認ができるだろう。そのために必要なレジストリエントリのパスおよび検出手順について、詳細を以下に記す。
.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レベルが確認できる。 |
これらのバージョンでは、バージョンごとに確認すべきレジストリキーが分かれている。しかし、「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では、「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レベルを確認する必要はない。
これらのバージョンでは、「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レベルを確認する必要はない。
.NET Framework 1.1以降では、ランタイムをインストールしただけではエラーメッセージなどが英語で表示されることがある。メッセージを日本語化するには、バージョンごとに「日本語Language Pack」という専用のパッケージをインストールする必要がある。そのため、この日本語Language Packについても、インストールされているかどうか確認した方がよい。
なお、.NET Framework 1.0はランタイム自体が日本語化されているため、このような現象は生じない。
.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レベルを確認する必要もある。 |
ランタイムのバージョン確認の場合と比べて異なるのは「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」値でインストール済みバージョンをそれぞれ確認する。 |
これらのバージョンでも、ランタイムのバージョン確認の場合と比べて異なるのは「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】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.