在我們產品的一個安裝程序版本中,我添加了一個自定義對話框(由CA使用session.Message()
顯示),詢問用戶是否希望在卸載時保留他的一些數據。WIX在進行重大升級時抑制卸載對話框?
CA的條件設置爲REMOVE="ALL" AND NOT WIX_UPGRADE_DETECTED
。 正常卸載時正確顯示該對話框,但在主要升級時刪除現有產品時也會顯示該對話框。此時,安裝程序會掛起,只能從任務管理器關閉安裝程序,導致升級不正確。
包含問題的安裝程序版本已發貨。 我們可以在下一個安裝程序版本中包含哪些內容(即進行重大升級),可以在刪除現有產品時解決對話框問題?
我已經在新版本(主要升級)中創建了一個CA,如您所描述的那樣調用msiexec(使用更正後的msi)。該操作在FindRelatedProducts之後運行,但由於某些原因,緩存的msi未被替換,並且升級崩潰。但是,當我試圖從控制檯應用程序調用msiexec時,緩存的msi被正確替換。你知道爲什麼會發生這種情況嗎? –
MSI具有一個互斥體,可防止兩個併發安裝。一個msi不能安裝另一個MSI(有效的recache)。您需要在運行新的MSI之前運行該命令。 –
我猜測我必須在安裝主要升級之前以某種方式從軟件包中運行msiexec命令。或者,你的意思是我必須創建一個單獨的應用程序來運行命令? –