はじめに
当サイトで公開しているソフトウェアは Microsoft .NET Framework 製です。
.NET Framework(プログラムの共通基盤)で作成されたプログラムを正しく動作させるには、.NET CLR と呼ばれる「ランタイム」の確実な導入が必要になります。ただ、その仕組みはソフトウェアの利用者(エンドユーザー)には少し難解かもしれません。ここで簡単にまとめてみました。
解決したい問題と誤解
- 「アプリケーションを正しく初期化できませんでした」。
- .NET Framework をインストールしろとあるが、どのバージョンを入れればよいのか分からない。でもまあ、とりあえず最新版を選んでおけばいいんだよね?
- .NET Framework は既にインストールしているはずなのに「エラー」で動かない。
- .NET Framework の最新版を入れたけど、何が変わったの?
何が必要か
結論から述べると、可能な限りの全てのバージョンのランタイムをインストールするのが、最も確実な導入方法となります。
Windows Update や以下のセットアップパッケージを利用して、お使いの OS 用に公開されている全てのバージョンの .NET Framework とそのサービスパック(セキュリティアップデート)を導入してください。
.NET Framework の種類
2008 年 9 月の時点で、.NET Framework には 1.0 / 1.1 / 2.0 / 3.0 / 3.5 / 3.5 SP1 の種類があります。(Windows Vista には 3.0 までが標準搭載。)
.NET Framework は、バージョン毎に独立した存在です。2.0 は、1.1 を上書きするものではありません。一つの環境に、複数の異なるバージョンの .NET Framework ランタイムが共存します。
.NET アプリケーションは、自身がどのバージョンのフレームワーク上で作成されたのかを記憶しており、実行時にはそのバージョンのランタイムを要求します。
たとえば、.NET Framework 1.1 製のプログラムの動作に必要なランタイムは 1.1 であって、2.0 ではありません。2.0 が導入されている環境であっても、このプログラムは依然として 1.1 を利用し続けます。
実際には、2.0 だけが導入された環境で、1.1 製のプログラムを実行することは可能です。ただし、1.1 と 2.0 の互換性は、完全には保証されていません。要求と異なるバージョンのランタイムの上では誤作動を起こす可能性があります。「とりあえず最新版を入れておけば OK」は誤りです。(逆にいうと、本来は、アプリケーションが要求するバージョン以外のランタイムを導入する必要はありません。)
.NET Framework と CLR の関係、3.0 以降
1.0 / 1.1 / 2.0 は、それぞれが完全に独立した .NET Framework および CLR ですが、.NET Framework 3.0 以降は、少し事情が異なります。3.0 / 3.5 / 3.5 SP1 は、CLR 2.0 に対する機能追加です。(CLR と呼ばれる中核は 2.0 のまま。必然的に .NET Framework 2.0 を含む。)
そもそも .NET Framework とは何か
.NET Framework(どっとねっと・ふれーむわーく)の "framework" とは、プログラムの枠組み、プログラムを作る上での共通の仕様や部品の集合です。.NET Framework はプログラムの共通基盤であり、また、それ自体が一つの環境です。主に開発効率の良さから、このフレームワークが選択されます。
ちなみに、".net" とは、いわずと知れたトップレベルドメインの一つですが、インターネット関連の技術とは何の関係もありません。通常のオフラインアプリケーションを作るための技術を含みます。
参考文献
- Microsoft .NET Framework 2.0 SDK Documentation
更新履歴
2008-12-12
- リンク先の変更と追記。
2008-09-17
- 初版。