2017-05-31 42 views
0

我已經創建了一個Wix安裝程序,它具有多種功能,例如將服務部署到Tomcat,添加和更新tomcat服務器和其他服務的配置文件,在IIS創建Web應用程序,創建MongoDB等。 因此,要執行一些更新配置類我有寫延遲執行的自定義操作,有時由於某些原因自定義操作失敗,並導致回滾,有時這種回滾留下一些足跡,如在Tomcat或其他配置文件的服務,或可能想要刪除Mongo DB等Wix安裝程序 - 如何在回滾發生後立即運行自定義操作?

所以在這裏我想在回滾發生後使用自定義操作刪除左側腳印。

我已經添加了一個自定義動作Execute="rollback"並調用它Before="Installfinalize",但它只是在回滾發生之前調用。

有什麼辦法可以巧妙處理這種情況嗎?

回答

0

Rollback custom actions只在發生故障後才執行,並且僅在錯誤發生之前安排的子集。假設你需要提升的特權,它們是你唯一的乾淨選項,所以我將開始驗證你的行動安排的順序。

還有一個地方可以嘗試在回滾發生後運行一個動作:作爲Install UI Sequence的結尾。當顯示完整用戶界面的安裝中發生錯誤時,它將運行UI序列條目msiDoActionStatusFailure(-3)。通常這會顯示一個對話框,說明安裝(或卸載)失敗。並且很難做更多的事情,因爲屬性不會從執行序列迴流到UI序列。

從理論上講,您可以在該條目中安排任何操作,以便先做某件事。但是,此操作將以與UI相同的權限運行(通常受限),並且只會在顯示UI時運行。所以這可能不會幫助你的情況。 (另外,除非你小心,否則如果你不能調用它會顯示的對話框,你會弄亂預期的UI體驗。)

相關問題