2010年12月20日月曜日

Installer error 2869 の原因が分からない場合のヒント

このエラーの解析にかなり手間取ったのでメモしておきます。

インストール中に、下記のようなエラーダイアログが出て、ロールバックしてしまいました。
何回やっても駄目で、しかも特定の環境下でしか再現しない・・・。

The dialog SetupError has the error style bit set, but is not an error dialog.

う~ん、全く意味が分かりませんね!
とりあえず、直前のエントリで書いた方法で、詳細ログを取るとエラーコードは2869。
このエラーコードを頼りに調べていくと、こちらのブログを発見。

要するに、直前のカスタムアクションが失敗しているのが原因のようです。
エラーメッセージからは全く想像つきませんね・・・。
ログから直前のカスタムアクションを調べてみます。

MSI (s) (BC:10) [13:23:12:269]: Invoking remote custom action. 
DLL: C:\Windows\Installer\MSI7330.tmp, Entrypoint: ManagedInstall

これは、どうやら.NETのInstallerクラスを呼び出している所のようです。
ProjectInstallerではレジストリの書き換えとサービス登録をやっていた
のですが、レジストリの書き換えは失敗する余地がない。
消去法で、サービス登録が失敗しているのでは?と考えて調べてみると、
サービスがアンインストールされずに残ったままでした。
今回のケースでは、手動でサービスを消したら*解決しました。

* サービスは次のコマンドで削除できます(必要なサービスを誤って消さないように注意!)
sc.exe delete [サービス名]

【参考】
Windows Installer Error Messages (MSDN)
http://msdn.microsoft.com/en-us/library/aa372835(VS.85).aspx

0 件のコメント:

コメントを投稿