OS付属の .NET を手動削除してハマる
ちょうど1週間ほど前の Windows Update でトラブルを経験しました
試行錯誤してうまくいった復旧方法が意外なものだったので、同じ問題に悩む人の為に書き残しておきます(手こずると思ってなかったのでスクリーンショットなしですが...)
Windows Update の無限ループ
- Windows Update に成功
- 手動で「更新プログラムの確認」すると、なぜか再び現れる項目が1つ
- それをインストール成功
2.〜3. を永遠に繰り返す
アンインストール後に残ったフォルダを深く考えずに手動削除
- .NET 関係だったので、.NET を再インストールすればいいんじゃないかとアンインストール
- C:\Windows\Microsoft.NET\Framework をエクスプローラで見ると、フォルダが残ってる...
- 残ったフォルダを手動削除( ⇐ 間違い)
- 「プログラムと機能」⇒「Windows の機能の有効化または無効化」経由で OS付属の .NET をインストールしようとするも、途中でエラーが発生してインストールできない
- 単独のインストーラーを使っても、途中でエラーが発生してインストールできない
- 公式の修復ツール .NET Framework Repair Tool を使っても変化なし
- 別の修復ツール .NET Framework Cleanup Tool を使っても(OS付属の .NET を処理対象から除外するため)変化なし... orz
参考:残念なことに、再インストール時のエラーメッセージは「構成がおかしい」といった具体性に欠けるものばかりで役に立たなかった
sfc.exe を使って...復旧しない!?
- OS 付属の sfc.exe を /scannow というやや違和感のあるオプション付きで実行すると、「すべての保護されたシステム ファイルの整合性をスキャンして、間違ったバージョンを正しい Microsoft バージョンに置換」してくれるハズ...
- 再起動後、なぜか Windows Update でエラー... orz (えぇぃ、連邦のM$はバケモノかっ!)
- イベントビューアを確認してみると「C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\web_hightrust.config が存在しない」というエラーメッセージ
- フォルダを見に行くと「web_hightrust.config」は無いが、「web_hightrust.config.default」はある。まさか...
まとめ
- OSに付属した .NET のインストール・アンインストールは、教科書通り「Windows の機能の有効化または無効化」で行う
- OSに付属した .NET の構成ファイルをエクスプローラで削除しない( C:\Windows\Microsoft.NET を直接いじらない)
- OSに付属のシステムファイル整合性を修復する sfc.exe /scannow がうまく動作しないこともある
- 余裕があれば次のリンク先で .NET の癖を理解するといいかも:.NET Frameworkのバージョンを整理する (1/2):Tech TIPS - @IT
おまけ:sfc で意図せず復活した Microsoft .NET Framework Assistant を削除する方法
は C:\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation フォルダを削除すれば消える...(Windows Update にしつこく出てくるけど、それはコンテキストメニューで非表示にする)