なんじゃこりゃと思い、そもそも.NET Frameworkとはなんだろ?と思い調べ始めてはみたものの、よくわかんなかった。
.NETってのがWindows環境でのネットワークアプリケーション動作環境で、その.NET対応アプリケーションを動作させる環境では必ず.NET Frameworkのインストールが必要になるらしい。
まあいいかと思い消すことにしたのだが、これが何故かアンインストールできない!
アプリケーションの追加と削除で消そうとしても何故か消えない・・・
消えないモジュールは KB928365 ってやつ。
で、アンインストールするため、検索したら下記サイトに書いてあった。
エラーコード0x66Aが止まらない(解決) - and feel
で、これを見ると、Aaron Stebner's WebLog : Automated cleanup tool to remove the .NET Framework 1.0, 1.1, 2.0, 3.0 and 3.5 を使えばすべての.NET Frameworkがアンインストールできるようだ。
ダウンロードは以下から。
.NET Framework Cleanup Tool User's Guide
zip解凍後「dotnetfx_cleanup_tool」というフォルダができているので、フォルダ内のいcleanup_tool.exeを実行する。
実行すると、以下のような画面が表示されるので、Cleanup Nowのボタンを押せばアンインストールできるっぽい。

うーむ。便利だ。
ちなみにバージョンは大雑把には1.0/1.1/2.0/3.0/3.5があるけど、2.0以降では今のところAPIが拡張されただけであって、3.0系でもランタイム(よーするにVM本体)自体は2.0が最新。そして2.0ランタイムは1.0とは互換性があるけど1.1とは互換性がなかったりする罠(なので、使用するアプリの組み合わせによっては1.1と2.0以降の両方がインストールされている必要があったり、開発を行わないのであれば現在のところは3.0以降がインストールされている必要はないはずだったりしまふ)。
んで.NETのランタイム環境のことをCLRっつーんだけど、例えばIEのUserAgentを見ると.NET FrameWorkが有効な状態だとCLR 2.0.xxxxxとかなんとか、そんな文字列が含まれていることでランタイムのバージョンを確認できたりもしまふ。
例えばわしマシンのIEのUserAgentは
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
となってたりしてて、1.1と2.0のCLRがどちらも有効になっていることがわかる(そして.NET FrameWorkとしては3.5を入れてあるんだけどCLRは3.5でなく2.0であることもわかる)。
なおVisual Studio .NET(事実上のVisualStudio Ver.7)以降で開発したアプリは開発言語の選択やビルド時の設定によって.NET FrameWork依存になりまふ。
そゆ意味では、.NET FrameWorkはVisualBasic .NET(すなわちVisualBasic 7.0)以降のVBランタイムであると思ってもそんなに間違ってなかったり(VB6以前と違ってイマドキのVBはもはやネイティブコードへのコンパイルには対応していない)。
あとまーそんなワケで、ネットワークアプリケーションでなければ.NET FrameWorkに依存することはないと考えるのはまつがい。イマドキのWin系アプリ開発では「マネージコード」ちう用語が時々出てくるけどこれは「.NET FrameWork依存コード」を意味すると思っておくのも役に立つことがあるかも。
ついでに言うと、Adobeが作ったJavaみたいで.NETみたいなもんがAIRであって、MSが作ったFlashみたいなもんがSilverlightと認識してたぶん桶ちうかわしはそう認識してる。
まぁ3.0以降で拡張された部分が使われているケース自体がそんなにないとは思うけど。
(前述の通り2.0以降の.NETではCLRは共通なんで、3.0以降の環境で開発されたコードであっても、3.0以降で拡張された機能を使っていなければ2.0環境で実行することはできる)
まーとりあえず、前述の通り.NETはVBランタイムちう面があったりもするんで、他人の作った(最近の)ソフトを使ったりすることがよくあるんであれば、HDDに余裕がないとかでもない限り1.1と2.0くらいは入れておいた方が何かと無難だとは思うお。
まぁ3.0以降で拡張された部分が使われているケース自体がそんなにないとは思うけど。
(前述の通り2.0以降の.NETではCLRは共通なんで、3.0以降の環境で開発されたコードであっても、3.0以降で拡張された機能を使っていなければ2.0環境で実行することはできるはず)
まーとりあえず、前述の通り.NETは事実上VBランタイムちう面があったりもするんで、他人の作った(最近の)ソフトを使ったりすることがよくあるんであれば、HDDに余裕がないとかでもない限り1.1と2.0くらいは入れておいた方が何かと無難だとは思うお。
イマドキ1.1依存アプリってのもどうかとも思うけど。
(つかIT業界(の一部?)では1.1依存アプリのせいで1.1環境を捨てられないちうかサポートし続けなくちゃなんなくて困る問題とかあるらすいねわしは直面したことないけど)
なんか、このブログうまくコメントできないみたいなんす。ごめんね。
なんと、詳しくコメントいただいてありがとうです。
うーむ、難しいんじゃのぅ。
必要になったら再インストールしようかのぅ。
>2.0ランタイムは1.0とは互換性があるけど1.1とは互換性がなかったりする
うーむ、さすがMS仕様。
>VBAとかVBScriptとかJScriptとか使った(実行時にコンパイルされる)アプリを実行する場合には3.0以降の.NET FrameWorkがインストールされている必要がある場合もありそうな気がしてきたな。
うーむ、3.0の実行環境がない状態で3.0依存のコマンドを使ったら「オレはそんなもの知らん」と突っぱねられる感じかのぅ・・・
コンピュータとは難しいものじゃの。さすがにもぽ選手くわしいにょ。
#2番目のは消せたら消しといてくだちい。
まあ、記念に(謎)残しとくにょ。
もちっとべんきょうしてみる。べんきょうきらいだけど。ありがとばい。
新しく作られる物は2.0以降が殆どで、1.0,1.1時代に作られた物を使わないのであれば消しても問題ないと思います。
クラスライブラリですので、3.0の機能が使われている場合、3.0が入っていないと使う事ができません。
WinFXから.NET Framework 3.0 になったのは単なる名称変更で、開発者からの強い要望を受けての事です。(名前が違うと別物だと勘違いされる恐れがある)
Vistaでは3.0が標準で搭載されており起動時に読み込まれています。(次期OSのWindows 7では.NET3.5 SP1が載る予定)
ちなみに現在.NET4.0が開発中で2010〜2011年までにはリリースされるかと思います。
>1.0,1.1時代に作られた物を使わないのであれば消しても問題ないと思います。
そーなんですか。そうであれば安心して消せますね。教えていただきましてありがとうございました。
りょーち@管理人です。
無事アンインストールできてなによりです。
.NET Framework ホントに曲者ですねぇ・・・