2014-09-26 116 views
0

我發佈了使用WiX 3.5構建的Windows安裝程序(V1)。 V1有一個UpgradeCode,但沒有Upgrade或MajorUpgrade元素。 V2尚未發佈。防止Windows安裝程序(MSI)使用WiX和UpgradeCode降級

我可以將MajorUpgrade元素添加到V2和V3安裝程序,並且可以檢測並阻止從V3降級到V2。我在安裝V2的過程中瞭解到,我也可以檢測到V1。

問題:
目前我可以在同一個目錄在V2安裝V1,並且這兩個版本出現在添加/刪除程序。 V1文件覆蓋V2文件。卸載V1不會從添加/刪除程序中刪除V2,但會刪除V2文件,因爲它們具有與V1相同的路徑名。用戶留下了不可用的V2安裝。

是否有可能在我安裝V2之後阻止安裝V1?

V1可以正確卸載V2嗎?

  • V2成功卸​​載V1自動
  • 只有一個ARP表項是V2升級安裝後,目前,隨着V2版本號
  • V1和V2具有相同的UpgradeCode
  • V2有一個版本在前三個字段中大於V1的數字
  • V1和V2有一個匹配的InstallScope

回答

1

預防降級需要升級檢測邏輯起作用,而且看起來並不是因爲您有兩個ARP條目。 V1和V2需要相同的UpgradeCode,V2的前三個字段的版本必須大於V1,並且InstallScope必須匹配。如果V2是每個用戶(或每臺機器)的安裝程序,那麼V1也將安裝,如果它不是相同的範圍,則不升級。

+0

我相信我已經達到了您列出的所有要求,並且將其添加到了問題中。 – 2014-09-26 19:40:12

+1

如果不明顯,則通過將/ L * vx添加到安裝命令行來升級帶有日誌的日誌。搜索FindRelatedProducts操作以查看它是否找到任何內容。另請注意,某些設置會將每臺計算機的安裝轉換爲每個用戶的安裝,因此這可能是一個問題。 – PhilDW 2014-09-27 17:05:51

相關問題