2011-12-07 9 views
1

私のWiXプロジェクトでは、同じDLL内に2つのカスタムアクションがあります。どちらもC#で書かれています。WiX CLR CustomActionがログに記録されない

最初のものは、マシン上で使用可能なIISサイトを列挙します。これは、Windowsインストーラダイアログの前に実行されます。

「次の」を押した結果、ダイアログ・フロー内の「どのWebサイトを選択するか」ダイアログの後に2番目のダイアログ・ボックスが表示されます。

最初のログは、MSIログファイルにうまく記録されます。
もう1つは何も記録しません。

なぜダイアログボックスでカスタムアクションログが記録されないのですか? (ダイアログの残りの部分は期待どおりにログに記録されています)
このログを有効にするためにできることはありますか?

答えて

2

DoActionコントロールイベントを使用して呼び出されたカスタムアクションは、MSIログに書き込むことができません。これはMSIの制限です。

0

権限の問題です。

IIS Webサイトの列挙には管理者権限が必要なため、最初のカスタムアクションは昇格したプロセスで実行されます。 2番目のカスタムアクションは昇格していないプロセスで実行されるため、ログに書き込むための十分な権限がありません。

ユーザーごとの場所(現在のユーザーデスクトップなど)にログを作成した場合、2番目の操作はログに正常に書き込まれます。

解決策は、2番目のカスタムアクションに昇格プロセスを使用することです。もう1つの解決策は、ユーザーごとの場所に常にログを作成することです。

関連する問題