2011-07-29 16 views
1

我使用VS2010安裝和部署模板創建了一個msi。在此我已經引用了自定義操作 - >安裝中的exe(應用程序)以在MSI執行時安裝。如果exe執行失敗我如何閱讀由MSI返回的失敗狀態。如何讀取使用MSI包裝安裝的exe的返回狀態?

注意:msi是使用組策略推送的,因此沒有用戶交互.MSI應該失敗並且不會出現在控制面板中。

回答

1

無法處理自定義操作返回值。

一個DLL自定義操作可以使用不同的返回碼來觸發安裝特定行爲:http://msdn.microsoft.com/en-us/library/aa369778(VS.85).aspx

的EXE自定義操作只能成功或失敗的任何其他值返回0。

因此,如果您的EXE失敗時返回非零值,則不會安裝該軟件包。

+0

謝謝, 從EXE自定義操作返回「ERROR_INSTALL_FAILURE」或「ERROR_INSTALL_USEREXIT」時,出現安裝對話框失敗。 但是,當通過用戶策略推送這個包時,對話框需要用戶交互,因此無法給出該用戶的登錄過程,因此該用戶的登錄過程沒有完成。它在很長的歡迎頁上保留。 有什麼方法可以繞過這個對話框帶有失敗消息? – Midas

+0

Windows Installer在收到這些返回值時自動停止安裝。通過網絡部署軟件包時,請確保它使用靜默安裝而不是完整的UI。爲此,您可以設置LIMITUI屬性:http://msdn.microsoft.com/en-us/library/aa369759(VS.85).aspx?ppud=4 –