我嘗試執行主要升級與我的MSI安裝程序和安靜安裝。當使用具有完整用戶界面的正常安裝時,安裝程序已經運行良好。在這種情況下,舊產品將被卸載,因爲FindRelatedProducts操作(從FolderForm中的UI序列)檢測到我以前安裝的版本。升級安裝會導致安裝軟件的重複條目(FindRelatedProducts not executed)
當MSIEXEC的/ QR開關用於抑制對話框和需要用戶交互(基本上重複使用從最後版本的設置),則失敗:
MSI (s) : Doing action: FindRelatedProducts
Action FindRelatedProducts. Searching for related applications
Action start FindRelatedProducts.
MSI (s) : Skipping FindRelatedProducts action: already done on client side
Action ended FindRelatedProducts. Return value 0.
其結果是,有在Windows的已安裝軟件對話框中顯示兩個條目 - 一個用於新舊版本,所以在這種情況下舊版本未被卸載/刪除。
有,我可以使用,將仍然執行FindRelatedProducts行動的任何其他msiexec命令開關?它是否可以集成到其他地方,以便在如此安靜的環境中執行?
難道說你以前的安裝是在不同的上下文(每名用戶的機器對),比靜默安裝?當您安裝每個用戶時,MSI無法卸載每臺計算機的安裝,反之亦然。這是你必須忍受的技術限制。 – 2010-01-04 16:52:52
感謝您的回答,Divo。 上下文應該相同,只有UI級別不同(5對4)。但是我能看到的是這個動作沒有被執行,因爲沒有顯示對話框。它將被用於FolderForm NextButton的DoAction觸發,但這是不可見的,並用縮小的UI級別執行。另一方面,當FindRelatedProducts應該被檢查並再次觸發時,它會被跳過(如上面的日誌片段所示),因爲它「已經在客戶端完成」。因此,在這裏,對於兩個UI級別,執行相同的操作。 – marco4net 2010-01-05 08:38:30