2

我已經使用InstallShield 2011 Basic MSI成功創建了標準補丁。我在檢測已安裝的應用程序的早期版本時遇到了問題。例如,我有一個名爲XYZ的應用程序,其基本版本爲3.7.0.188,我想用3.7.0.201版本進行修補。我可以成功地將這個補丁應用到3.7.0.188的基礎上。現在,如果我安裝早期版本的應用程序XYZ(3.7.0.173)並嘗試應用我的修補程序,它將失敗。我希望能夠檢測到這一點,並顯示一個無法完成的對話框,或者我的想法是錯誤的?什麼是正確的方法來做到這一點?我覺得InstallShield應該能夠固有地做到這一點。使用標準補丁時如何檢測以前的版本

+0

順便說一句,「它失敗」是非常不具描述性的。提供任何您看到的錯誤消息(它僅僅是「安裝程序中斷」對話框?)以及在詳細日誌中看到的任何相關錯誤代碼會更加清楚。 –

+0

這是我得到的錯誤: 錯誤1328.錯誤應用修補程序到文件C:\ Config.Msi \ PTC90A.tmp。它可能已通過其他方式更新,並且不能再由此修補程序修改。有關更多信息,請聯繫您的補丁供應商系統錯誤:-1072807676 – user1893305

回答

0

正常情況下,當您嘗試將修補程序應用於與其目標不匹配的版本時,Windows Installer應該會顯示一條消息,類似於「由於要升級的程序可能會丟失,無法通過Windows安裝程序服務安裝升級修補程序,或者升級補丁程序可能會更新該程序的不同版本......「您是否收到此消息?

這是由我的知識,而不是由InstallShield操作系統控制。

+0

我沒有收到該消息。當我比較產品代碼和升級代碼時看到日誌時,它說兩者都是有效的,但是當它再次查找產品代碼時(在註冊表中),它無法在數據庫中找到它。我不確定它指的是哪個數據庫。我試圖在Flexera論壇上獲得幫助,但獲得答覆需要很長時間。 – user1893305

+0

是的,在註冊表中查找所有信息。數據庫是MSI包,它實際上包含表,就像數據庫一樣。你能附上這個安裝的詳細日誌嗎? –

+0

日誌很漂亮,我可以在這裏粘貼或者有附加方法嗎? – user1893305

0

有一點需要研究的是,如果您使用次要升級補丁而不是上述小型更新補丁,您會看到不同的行爲。由於您尚未更改ProductVersion的前三個部分之一,因此您正在提供一個小更新。這些很難推理,因爲Windows安裝程序經常認爲版本是等同的,並且根本不會做任何事情來阻止您進入「錯誤」的方向。

請參閱Patching and Upgrades以及關於小更新和小升級的鏈接文章。