2017-02-02 168 views
0

我的Installshield MSI安裝程序進行了小幅升級(我認爲這是正確的術語?),這是第一次出現問題。我在安裝程序中更改了必要的值,就像我以前做過很多次:將「產品版本」從「2.0.12」設置爲「2.0.13」,並將組件版本從「2016.12.19.1415」更新爲「2017.1 .30.1037" 。但是,當我運行升級時,組件不會從2016版升級到2017版。Installshield MSI升級不更新文件

下面是有關該組件的儘可能多的信息我從MSI日誌得到:

MSI(S)(圖4C:10)[16:01:32:848]:組件:EAS.Common.SignalR .Client.dll;已安裝:本地;要求:無;行動:空

編輯:我恢復到以前的版本的安裝程序,並添加更新。升級現在可以正常工作。所以我認爲這與我添加的新組件有關。

回答

2

大多數人最好使用更簡單,更靈活,但效率較低的主要升級。次要升級要求對組件規則有一個強烈的理解,並且對可以做什麼和不可以做什麼都有嚴格的限制。這要求開發團隊在他們要求設置開發人員進行的操作中遵守。

如果您打算進行小幅升級,請確保您使用MSIENFORCEUPGRADECOMPONENTRULES property完全測試您的合規性。這可能會幫助您找到錯誤,而不是安裝那些似乎可行的錯誤,但不會以您期望的方式結束。

+0

問題是我刪除了先前安裝中存在的組件。我設置組件的條件爲「1 = 0」,並將其重命名爲「DONOTDELETE_ {name}」 –

+0

我會小心重命名組件。微星真的不喜歡改變主鍵。僅供參考,如果您正在使用MSI < 4.5. For > = 4.5在MSIUNINSTALLSUPERSEDEDCOMPONENTS上閱讀,請務必閱讀有關使用傳輸組件位「穿孔」組件的信息。 http://stackoverflow.com/questions/23102970/remove-file-during-minor-upgrade –

+0

有關重命名組件和其他主鍵的警告字:https://blogs.msdn.microsoft.com/windows_installer_team/2007/03/07 /任意標籤作爲主鍵不可更改之間的版本/ –

相關問題