Saya memeriksanya lagi, dan ini beberapa informasi terbaru :
Dimungkinkan untuk menekan GUI MSI dan menetapkan GUI eksternal yang diterapkan oleh pihak ketiga. GUI eksternal ini dapat menerima pesan dari msiexec.exe saat melakukan instalasi. Ini sebagian besar untuk menerapkan bilah kemajuan kustom , tetapi tampaknya Anda juga dapat mencegat sebagian besar pesan kesalahan dan pesan status lainnya: Fungsi MsiSetExternalUI .
Parameter yang menarik adalah dwMessageFilter . Dengan mengatur ini, Anda dapat, misalnya, hanya menerima pesan kesalahan yang terjadi selama instalasi - atau begitulah tampaknya. Saya kira ini cukup untuk sebagian besar tujuan.
INSTALLUI_HANDLER MsiSetExternalUI(
_In_ INSTALLUI_HANDLER puiHandler,
_In_ DWORD dwMessageFilter,
_In_ LPVOID pvContext
);
Sayangnya saya tidak memiliki kode contoh untuk saat ini. Saya akan menguji ini nanti, ketika saya mengatur sistem saya dengan benar. Fungsi MsiEnableLog adalah panggilan fungsi terkait yang akan memungkinkan logging ke file. Pembaruan: Ini adalah contoh SDK yang berfungsi .
Pada tingkat antarmuka baris perintah , Anda juga dapat mengatur logging untuk menyiram buffernya segera ke file dengan menambahkan ! parameter:
msiexec.exe /I "IsWiX.msi" /QN /L*V! "C:\msilog.log"
Ini berarti file log ditulis terus menerus sehingga tidak ada buffer log yang hilang jika msiexec.exe macet. Biaya pemasangannya jauh lebih lambat karena overhead IO.