簡體   English   中英

Wix重新安裝Windows服務的MSI隨機失敗

[英]Wix re-install msi with windows service fails randomly

我們有一個安裝Windows服務的msi軟件包。 一天結束時,Windows服務將從公共Blob位置下載新的msi程序包,然后開始重新安裝。

重新安裝命令=

msiexec /i GatewayService.msi /qn REINSTALL=ALL REINSTALLMODE=vamus /L*V msi.log

我們想要的如下:

  1. 這應該重新安裝整個msi軟件包,而無需在任何情況下進行任何檢查
  2. 新msi中的所有文件都應復制到已安裝的dir,新msi中不存在的文件應被回收。

因此,本質上我們想要的是在一個命令中像UNINSTALL old msi和RE-INSTALL new MSI。

我們想知道

  1. REINSTALL/REINSTALLMODE標志值是否正確?
  2. 有時,我們在TaskManager中看到孤立的Windows服務。 知道為什么重新安裝命令會導致兩個Windows服務實例嗎?

建議將不勝感激!

您生成了一個日志-查看一下是否有關於刪除不支持的組件的任何信息。 還要在命令行上設置MSIENFORCEUPGRADECOMPONENTRULES = 1,如果您違反了次要更新規則,安裝將失敗。 如果確實失敗,則該MSI的作者違反了更新規則,並且Chris的建議是進行重大升級,而不是可選的!

這些服務可能沒有停止或啟動它們的ServiceControl操作,因此它們將繼續運行更新,因為沒有任何內容告訴它們停止。 使用中的文件需要更新可能會使情況變得復雜,因為您的靜默安裝沒有使用中的文件對話框提示關閉進程。

如果服務關閉(該進程不再是服務),但是包含進程仍在運行,則您可能會獲得一個明顯孤立的服務進程。 如果服務對關閉做出響應,但隨后又繼續一段時間,則這可能是正常的,這取決於服務中的代碼。

您的命令行表明您正在進行次要升級。 您的要求表明,重大升級將更適合您。

如何:在安裝程序中實施重大升級

較小的升級非常挑剔,違反規則可能會導致重復的服務問題。 看到:

更改產品代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM