2016-05-20 45 views
1

從1.7.211到1.7.212時,我的安裝程序正在執行次要升級,但我希望它始終執行主要升級。一個新的安裝程序應該總是覆蓋以前安裝程序安裝的所有內容,無一例外。有沒有辦法修改installshield項目來完成這個?如何強制Installshield 2012執行重大升級?

+0

哪個項目類型? MSI還是非MSI?基本或InstallScript? – yossiz74

+0

msi類型我猜。 (生成.exe和.msi文件,並且.exe​​提取msi作爲安裝過程的一部分),但不確定它是基本的還是installscript。我基本上從來沒有想過做一個小小的更新。我希望它考慮版本號的任何更改以構成重大更新。 – ChopperCharles

回答

0

我打算假設您使用的是基本MSI或InstallScript MSI項目類型。對於每個版本,您必須採取必要的步驟進行重大升級(並且確切地說,這是一個MSI rule,而不是InstallShield規則)。

在你的InstallShield項目中,筆者在升級視圖的重大升級。設置時,你需要說「任何以前的版本」。

然後,對於每一個版本,你需要增加版本號(前三位之一,MSI忽略了第四)和產品代碼GUID。

我不同意你的說法「新的安裝應始終覆寫安裝以前安裝的一切,沒有例外。」只有更新發布版本之間更改的文件是最優先考慮的因素時,有許多部署模型。如果這個模型目前適合你,那很好。只是開放小規模和補丁升級的可能性,以及這些在發佈規劃方面的樣子。

+0

爲什麼我必須觸摸產品代碼GUID?不應該「任何以前的版本」照顧呢?有沒有辦法將它直接綁定到版本號,所以當創建一個新的版本時它是全自動的? – ChopperCharles

+0

如果您想要進行重大升級,您必須滾動產品代碼GUID。這只是微星工作原理的一部分。您不想在每個版本中都滾動產品GUID。每個發行版都可以。我想重申,每次發佈自動強制升級都需要重新考慮。 –

1

對於MSI項目,請轉到'升級'區域(位於'媒體'下)。在'升級Windows安裝程序設置'下創建一個新的主要升級項目。對於那個項目,選擇「在特定的版本範圍內」,並將最大版本設置爲大於當前版本的版本號(例如1.8)。

這樣,當Windows安裝程序檢測到它應該在升級模式下運行,它會看到當前安裝的版本(1.7.11)適用於重大升級規則,將進行一次重大升級進行。

相關問題