私はこれをもう一度チェックしました、そしてここにいくつかの更新された情報があります:
MSI GUIを抑制し、サードパーティによって実装された外部GUIを設定することが可能です。この外部GUIは、インストールの実行時にmsiexec.exeからメッセージを受信できます。これは主にカスタムプログレスバーを実装するためのものですが、他のほとんどのエラーメッセージとステータスメッセージを傍受することもできます:MsiSetExternalUI関数。
興味深いパラメーターはdwMessageFilterです。これを設定することで、たとえば、インストール中に発生したエラーメッセージのみを受け取ることができます。ほとんどの場合これで十分でしょう。
INSTALLUI_HANDLER MsiSetExternalUI(
_In_ INSTALLUI_HANDLER puiHandler,
_In_ DWORD dwMessageFilter,
_In_ LPVOID pvContext
);
残念ながら、現時点ではサンプルコードがありません。システムを適切にセットアップしたら、後でテストします。MsiEnableLog機能は、ファイルへのロギングを可能にする、関連の関数呼び出しです。更新:動作するSDKの例のようになります。
で、コマンドラインインターフェイスレベル、あなたも追加して、ファイルに即座にそのバッファをフラッシュするロギングを設定することができます!パラメータ:
msiexec.exe /I "IsWiX.msi" /QN /L*V! "C:\msilog.log"
つまり、ログファイルは継続的に書き込まれるため、msiexec.exeがクラッシュしてもログバッファーは失われません。IOオーバーヘッドのため、コストはインストーラーが大幅に遅くなります。