Patch Cacheを無効にしてサービスパックをインストールする

Microsoft© Visual Studio© 2005 Service Pack 1

サービスパックだが、mspパッケージの展開は昨日のエントリにメモしていた通り、/extractパラメタを指定することでシステムドライブ以外のHDD上に展開することが出来たのだが、今度はシステムドライブに空きが足りなくてインストーラが止まってしまう。と、ここで思い出してNyaRuRuさんが紹介してくれたエントリを読む。

Save Time and Space for VS 2005 SP1 by Disabling the Patch Cache

なるほど、システポリシ MaxPatchCacheSizeの値を0にすることで、パッチ用のキャッシュが作られないようにする訳だ。しかし、これを実行しても状況は変わらない。なんでだろう、とバッチファイルを見ると実行しているのは.exeであり、.mspでは無かった。どうやらこの方法はパッケージが展開される前の状態から開始しないと意味を成さないらしい。

これからサービスパックを当てようとしている方はHDDの空きに十分注意されたい。システムドライブに5Gb程度の空きが無い場合は、上手くいかないことを考えたほうが良いだろう。

追記:
自分でmsiserverサービスを落としてMaxPatchCacheSizeを変更後、サービスを再起動したりして試してみたのだが、相変わらずシステムドライブの空きが足りないといわれるのでシステムドライブのありとあらゆるファイルとTempフォルダを消して、なんとか1.4Gbの空きを作って実行した所、やっとインストールフェーズ(EULA確認後)まではこぎつけた。HDDが空きが心配と、パッケージを他のドライブに展開したのは良かったが、システムドライブに1Gb以上の空きが必要なのは変わらないようである。

追記2:
結局、.mspを他のドライブに展開したにも関わらずこれを実行すると

C:\Documents and Settings\Kazzz\Local Settings\Temp\26c8a6.msp

とシステムドライブにmspをコピーして、それを実行している。どうりで意味無いわけだ。
今度失敗したら予めmspの展開をするのは止めてバッチファイルでやってみよう。

追記3:

HDDの空きは足りたのだが、今度は以下のエラーで止まる。ログを見ると

このパッケージをインストールするときに予期しないエラーが検出されました。このパッケージは問題がある可能性があります。エラー コードは 2908 です

う〜ん。今、NyaRuRuさんからもコメントが入ったが、やはりログを指定してバッチファイル使ってみよう。という訳で、他のドライブにmspを展開するインストール方法は駄目かもしれない。

やっぱり今日はサービスパックで終わってしまいそうだ..