連載
» 2017年12月11日 05時00分 公開

Tech TIPS:.NET Frameworkのバージョンを整理する (1/2)

.NETアプリケーションを利用するには.NET Frameworkのインストールが必要だ。しかし.NET Frameworkには複数のバージョンがあり、対象に応じて適切なバージョンを選ばなければならない。各バージョンの特性や相互の関係、新たな「.NET Standard」「.NET Core」との関係などを整理して解説する。

[島田広道,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象ソフトウェア:Windows Vista/Windows 7/Windows 8/Windows 8.1/Windows 10、Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2/Windows Server 2016、.NET Framework 1.0/1.1/2.0/3.0/3.5/4/4.5/4.5.1/4.5.2/4.6/4.6.1/4.6.1/4.7/4.7.1


 .NET Framework対応アプリケーション(.NETアプリケーション)を利用するには、対象コンピュータに.NET Frameworkを展開(インストール)する必要がある。

 この展開作業における厄介な問題の一つは、.NET Frameworkに何種類ものバージョンがあって混乱しやすいことだ。展開する.NETアプリケーションに合わせて適切なバージョンの.NET Frameworkを選ばなければならない。そのため、インストール可能なWindows OSのバージョンや展開時の注意点も.NET Frameworkのバージョンごとに把握しておく必要がある。

 そこで本稿では、展開上の注意点に焦点を当てて、.NET Frameworkのバージョンごとの特性などを整理して解説する。また、新たに登場した「.NET Standard」「.NET Core」と、.NET Frameworkとの関係についても触れる。

 インストール済みの.NET Frameworkのバージョンを確認する具体的な方法については、TIPS「.NET Frameworkのバージョンを確認する方法」を参照していただきたい。

.NET Frameworkの各バージョン同士の関係

 2017年12月時点でリリース済みの.NET Frameworkには、Ver.1.0/1.1/2.0/3.0/3.5/4/4.5.x/4.6.x/4.7.xというバージョンがある(このうちVer.1.0/1.1/4/4.5/4.5.1のサポートはすでに終了している)。

.NET Frameworkの各バージョンの関係 .NET Frameworkの各バージョンの関係

 上図を基に、.NET Frameworkの各バージョン同士の関係や特性を説明する。

●一つのシステムに複数のバージョンの.NET Frameworkが共存可能

 上図で4つに分類されている各グループ、すなわちVer.1.0とVer.1.1、Ver.2.0/3.0/3.5、Ver.4/4.5.x/4.6.x/4.7.xは、お互いに独立していて、一つのシステム内に共存できる。例えば、Ver.3.5をインストール済みのシステムにVer.4(あるいはVer.4.5.x/4.6.x/4.7.x)をインストールし、それぞれに対応する.NETアプリケーションを実行することが可能だ。

 逆に言えば、あるグループ内の.NET Frameworkをインストールしても、別のグループ内のバージョンをインストールしたことにはならない、ということでもある。例えば、Ver.4.6をインストールしてもVer.2.0〜3.5はインストールされない。

●各アプリケーションが求めるバージョンの.NET Frameworkがそれぞれ必要!?

 一方、上図のグループ間では、上位バージョンの.NET Frameworkと下位バージョンの.NET Frameworkとの互換性は完全ではない。例えば、Ver.4のランタイム上で、Ver.1.0あるいはVer.1.1、Ver.2.0に対応する各.NETアプリケーションを実行できるとは限らない。

 .NETアプリケーションでは通常、実行可能な.NET Frameworkのバージョンが開発時に決められている。そのため、対応バージョンの.NET Frameworkが未インストールだと、そのアプリケーションは実行できない。

 付属の設定ファイル(*.configファイル)を修正すれば、別バージョンの.NET Framework上でも実行できる可能性があるが、そもそも、こうした実行方法は当該アプリケーションの開発元が動作を保証してくれないだろう。

 結局、利用したい.NETアプリケーションが複数の場合は、必要とされるバージョンの.NET Frameworkをそれぞれインストールするのが現実的といえる。

●Ver.2.0/3.0/3.5は前バージョンにも対応

 上図のVer.2.0〜3.5のグループ内では、各バージョンは一つ前のバージョンを内包する関係にある。Ver.3.0/3.5の構成は、大ざっぱには以下のように表せる。

  • Ver.3.0: Ver.2.0にVer.3.0の新機能(WPFやWCFなど)を加えたもの
  • Ver.3.5: Ver.3.0にVer.3.5の新機能(LINQなど)を加えたもの
.NET Framework 2.0/3.0/3.5の関係 .NET Framework 2.0/3.0/3.5の関係

 WPFやWCF、LINQについては次の記事を参照していただきたい。

 上記のような関係のため、Ver.3.0をインストールすると自動的にVer.2.0もインストールされるし、Ver.3.5をインストールするとVer.2.0/3.0もインストールされる。そのため、これらのバージョンに対応する.NETアプリケーションを利用するには、以下のように.NET Frameworkのいずれかのバージョンがインストール済みであればよい。

  • Ver.2.0対応の.NETアプリケーション: .NET Framework 2.0/3.0/3.5のいずれか
  • Ver.3.0対応の.NETアプリケーション: .NET Framework 3.0/3.5のいずれか
  • Ver.3.5対応の.NETアプリケーション: .NET Framework 3.5

●Ver.4/4.5.x/4.6.x/4.7.xは共存できない

 Ver.4.x系列の場合、下位バージョンは上位バージョンによって置き換えられる。例えばVer.4がインストール済みのシステムにVer.4.6をインストールすると、Ver.4のコンポーネントがVer.4.6によって置き換えられる。

 つまり、Ver.4.x系列内では下位バージョンと上位バージョンは共存できない。

 もっとも、基本的にVer.4.x系列では上位互換性が保たれている。例えば、Ver.4対応の.NETアプリケーションはほとんどの場合、プログラムコードの変更なしでVer.4.5上でも実行できるとのことだ。

 それでも少ないながら、アプリケーションが利用している機能によってはコード変更が必要な場合もあるようだ。Ver.4対応の.NETアプリケーションをVer.4.5.x/4.6.x/4.7.x上で実行したければ、一応アプリケーション開発元にVer.4.5.x/4.6.x/4.7.xでの動作を確認した方が無難だろう。

 なおVer.4には次の2種類のインストール形態があり、インストール時に選択できる。

  • クライアントプロファイル(Client Profile)版:
    クライアントPC向けでASP.NETなどが省かれている
  • フル(Full)版:
    全機能を搭載している(フル版はクライアントプロファイル版を含んでいる)

 もっともVer.4.5以降ではクライアントプロファイル版は廃止され、フル版だけが提供されている。

各Windows OSで利用できる.NET Frameworkの各バージョン

 一つのシステム内で複数のバージョンの.NET Frameworkが共存できるといっても、Windows OSによって共存できない組み合わせもある。Windows OSによって、インストールできないバージョンの.NET Frameworkがあるからだ。そうした組み合わせを以下の図で分類・整理してみた。

各クライアントWindows OSにインストール可能な.NET Frameworkの各バージョン クライアントWindows OSにインストール可能な.NET Frameworkの各バージョン
*1 Ver.1.1はインストールできる場合もあるが、Microsoftはサポートしていない

 「プリインストール」は各Windows OSのデフォルト設定でインストールされるかどうかを表している。そのため設定によっては、「プリインストール」のものがインストールされていなかったり、「インストール可能」の範囲内で別のバージョンの.NET Frameworkがプリインストールされていたりすることがある。

 また打ち消し線が引かれているバージョンは、すでにサポートが終了している。

各Windows Serverにインストール可能な.NET Frameworkの各バージョン 各Windows Serverにインストール可能な.NET Frameworkの各バージョン
*1 Ver.1.1はインストールできる場合もあるが、Microsoftはサポートしていない

 Windows 7/Windows Server 2008 R2以前の場合、上図で「インストール可能」となっていても、Windows OSに最新のService Packが未適用だと、そのバージョンの.NET Frameworkがインストールできないことがある。

 その場合はMicrosoftが規定しているサポートライフサイクルに従って、サポート対象のService Packを適用しておこう。詳細はMicrosoft提供の「クライアントWindows OSのサポートライフサイクル」「Windows Serverのサポートライフサイクル」を参照していただきたい。

「.NET Standard」「.NET Core」と.NET Frameworkの関係

 .NET Framework 4.5以降では、Microsoftが新たに規定した「.NET Standard」に対応している。これは、さまざまな.NET環境(.NETランタイム、.NETプラットフォーム)で使えるAPIセットを定めた仕様のことだ。詳細はInsider.NETフォーラムの「.NET Standardとは」を参照していただきたい。

 また、「.NET Core」という.NETアプリケーションの実行環境(プラットフォーム、実装)の提供も始まっている。これは.NET FrameworkがWindows OS専用の実装であるのに対し、macOSとLinux、そしてWindows OSというクロスプラットフォームに対応しているのが大きな特徴である。

 .NET Frameworkは従来通りWPFやWindows Forms、ASP.NETベースのアプリケーション実行に利用されるのに対し、.NET CoreはUWPやASP.NET Coreなど新しいフレームワークを用いたアプリケーション向けとされる。詳細はInsider.NETフォーラムの「.NET Core」を参照していただきたい。

 このように.NET環境が多様化するに当たり、それらの間で共通となるベースライブラリの仕様を定めているのが.NET Standardということだ。

 その.NET Standardにも複数のバージョンがある。そのバージョンが大きいほど多くのAPIをカバーしていて、より新しいバージョンのプラットフォームでのみサポートされる。また上位バージョンの.NET Standardは、下位バージョンを内包している。

 その.NET Standardの各バージョンと.NET Frameworkの各バージョンの関係を表したのが次の図だ。

.NET Frameworkと.NET Standardの各バージョンの対応(.NET Core 1.x SDKが使われている場合) .NET Frameworkと.NET Standardの各バージョンの対応(.NET Core 1.x SDKが使われている場合)

 「.NET Core 1.x SDK」とは、.NET Standard対応アプリケーションの開発に用いられるツールとそのバージョンを表している。この場合、.NET Standard 2.0対応アプリケーションを実行するには、.NET Framework 4.7.1が必要になる。

.NET Frameworkと.NET Standardの各バージョンの対応(.NET Core 2.x SDKが使われている場合) .NET Frameworkと.NET Standardの各バージョンの対応(.NET Core 2.x SDKが使われている場合)

 一方、.NET Core 2.x SDKが用いられている場合は、上図のように.NET Framework 4.6.1以降がインストールされていれば、.NET Standard 2.0対応アプリケーションを実行できる。

 次のページでは、.NET Frameworkの各バージョンのダウンロードやインストール、Service Pack、言語パックについて説明する。

       1|2 次のページへ

Copyright© 1999-2018 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

RSSについて

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

メールマガジン登録

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