CANCEL按鈕在默認安裝程序UI中的工作原理是什麼?MSI安裝:取消不起作用
如果我點擊取消按鈕,有時候我可以看到「是否要取消設置」對話框,有或沒有選項。
但是有些情況下,這個彈出窗口不會顯示並且安裝繼續。
我看到這個問題,如果我只在第一階段結束時單擊取消按鈕。狀態消息是「應對新文件」。
「應對新文件」是延遲操作。第一階段如何顯示此消息?
CANCEL按鈕在默認安裝程序UI中的工作原理是什麼?MSI安裝:取消不起作用
如果我點擊取消按鈕,有時候我可以看到「是否要取消設置」對話框,有或沒有選項。
但是有些情況下,這個彈出窗口不會顯示並且安裝繼續。
我看到這個問題,如果我只在第一階段結束時單擊取消按鈕。狀態消息是「應對新文件」。
「應對新文件」是延遲操作。第一階段如何顯示此消息?
您確定它實際上正在運行「複製新文件」操作,還是在沒有發佈任何進度更新之後的操作?如果它是一個自定義操作,要小心,它的兩兩件事之一:
如果該動作從不調用MsiProcessMessage,則Windows安裝程序將處理該操作的取消操作,但無法在操作中取消該操作。如果該操作調用MsiProcessMessage(具有eMessageType
的某些值),則Windows Installer會假定該操作將處理取消操作,並且該操作必須返回ERROR_INSTALL_USEREXIT
或者Windows Installer會感到困惑。
CANCEL按鈕在默認安裝程序UI中的工作原理是什麼?他們在WindowsForms .NET中使用多個線程,如BackgroundWorker。一個用於UI的線程和一個用於安裝的線程,如果您單擊取消(UI),它將嘗試在某個特定時間點停止另一個線程(安裝)。
我錯過了什麼嗎?這個問題纔會出現,如果我在第一階段結束時點擊取消按鈕,狀態消息顯示在用戶界面上是「應對新文件」。 – Rajeshaz09
我發現這個,這可以幫助http://en.wikipedia.org/wiki/Windows_Installer – dpp
將分兩個階段執行MSI安裝過程的順序運行:
應執行例如,當提交操作開始執行時,安裝不能再取消。
這個問題出現在第一階段。如果我在第二階段點擊取消按鈕,我得到取消彈出窗口。但唯一的問題在第一階段結束。一個重要的提示是,如果我直接在第二階段點擊取消按鈕,我可以看到彈出窗口。但是,如果我點擊第一階段結束,我看不到......並立即如果我再次嘗試在第二階段,我冷看不到取消彈出窗口(安裝跳過進一步取消按鈕點擊)。 – Rajeshaz09
幾乎所有的自定義動作,在開始實際任務之前,調用MsiProcessMessage來設置狀態。返回類型處理不當。 – Rajeshaz09