2008年5月22日木曜日

Windows XP SP3の弊害か? Silverlight

 「Windows XP SP3 公開」においてMessengerに関するバグらしき情報を記載しました。
 未だにWindows起動時にMessengerインストール時に使用したmsiファイルを指定するように促すウィンドウが表示されており、対策を行っておりません。

 そんな中、つい先日になりますが今度はSilverlightでも同様な状況に陥りました。

 勝手にアップデート警報出しておいてアップデートしようとするとsilverlight.msiを要求するメッセージウィンドウが表示されます。
 適用するか、Microsoft UpdateサイトでUpdateリストから手動で削除しない限りは出続けます。

 その英文を見ると、単に「Silverlight.msi」パッケージがネットワークリソースにあり、指定しろって事らしい…。

 Updateの際にファイルをダウンロードし、テンポラリフォルダへ展開してくれるのだが、この展開されたファイルを指定しても、「Silverlight.msi」パッケージを指定しろってウィンドウに戻ってしまい先に進むことができない。
 キャンセルしてもUpdateが適用されていないので、またもや警告が出る。
 悪循環に陥るようです。

 そこでOSトばす覚悟で強行してみたましたが、上手くいったようですので記載します。

 まず上述の指定が必要な「silverlight.msi」ファイルとは、アップデート前…つまり現在インストールしているバージョンの「silverlight.msi」ファイルということらしい(強行アップデートが成功したので、そう判断しています)。
 よってUpdate作業でダウンロードし展開された「silverlight.msi」ファイルではエラーとなります。
 ところがケチなマイクロソフト社は、バージョンが違うという事を書いていません。
 更に英語だけって…。

 さて、肝心の作業ですが、レジストリを操作しますので御自身の判断で実行してください。
 最悪の場合はOSが起動しなくなります。

 まず、silverlightの公式ページでバージョンをチェックします。
 既にインストールされているので、インストールされているバージョンと最新バージョンとが表示され異なっていると思います。
  Silverlight公式ページ

 行ったついでに最新バージョンをダウンロードし保存しておきます(実行はしない)。

 次にレジストリエディタを起動します。
 コマンドラインへ"regedit"って入力します。

 次にキーワード"silverlight"って入力して検索します。ヒットしたらキー毎削除してしまいます。
 通常は右ペインのエントリー項目だけが対象になりますが、私の場合は左ペインのID部分ごと消しました。
 何度か検索を実行し、ヒットしては削除していき、"silverlight"がヒットしなくなるまで削除します。
 つまり、silverlightがインストールされていない状況を作り出します。

 これでインストールされているsilverlightの実ファイルは残されていますが、OS上ではインストールされていない状況になります。

 ここでダウンロードしてきた最新のsilverlightをインストールします。

 これで完了です。

 上述のようにレジストリエディタでエントリを削除しますので、削除方法がわからないまま、変なルートキーを削除したりするとOSが起動しなかったり、起動しても別なアプリケーションの動作が変になったりします。

 Messengerも同じようにして出来るかどうかは…まだ止めときます。