我已經花了過去3天就地運行,同時追查在我的系統上強制重新啓動的原因,但最終將其縮小到一個非常具體的原因。我有一個服務套件,我正在Wix中工作。有10個msi全部與燒錄安裝在一起。隨着這10個安裝程序的運行,他們創建依賴於之前安裝的服務。除了在服務啓動並運行時將其卸載以外,此安裝中的所有功能都很好。其他人依賴它的服務告訴Windows重新啓動是必要的,儘管它不是(據我所知)。服務依賴性導致我的wix msi強制重新啓動卸載
使用參數'/ norestart'調用引導程序將停止從自動重新啓動進行無提示卸載,但窗口仍然會以「不要做任何其他事情,直到重新啓動」階段爲好,但並不理想。
有沒有辦法讓我的CulpritServiceInstall.msi物理上無法標記我的機器重新啓動?我知道這可能不是最好的解決方案,但我有90%的人相信重啓標誌是由windows安裝程序設置錯誤的假設(它擔心某些服務需要重新啓動,但它們已從系統中清除)。
我可以發佈我的wix wxs文件給大家,如果有人認爲可以提供幫助。
驗證我的問題:如果依賴服務在卸載期間未運行,則一切正常。看起來卸載在卸載1開始時拍攝了服務狀態的快照,並保留到最後。
編輯:BradFordrg發現我的問題。我以某種方式遠離修正這個問題的正確途徑。我從來沒有嘗試過自己運行憤怒的msi。我總是將其與我的依賴服務配對。我的測試太偏見。我本可以通過掃描msi日誌中的「重新啓動」這個詞來認識我自己,但是顯然沒有。
做一個詳細的卸載日誌,看看它說什麼。另外,你的WiX對停止服務有什麼看法?它有Wait = Yes嗎?服務及其包含過程是否真正關閉?如果服務和包含過程沒有正確消失(並且可能是編碼問題),則Windows需要重新啓動才能刪除它。它還在服務小程序中嗎?如果是的話,它是什麼狀態?也許這個過程還在運行?所以你可以看看更多的東西來處理這個問題。 – PhilDW
這是文件沒有正常離開。好建議。 – Shadoninja