2010-08-31 30 views
1

我遇到了有關Windows Installer程序的問題。我正在使用一種流行的安裝嚮導程序,它使用MSI安裝引擎。它提供了差異修補功能,這當然由Windows Installer支持。XP/2003 Windows Installer 4.5差異修補問題

但是,在嘗試在WinXP(SP3)和2003(SP2)上應用修補程序時遇到問題。

我得到了1328的Windows Installer錯誤:

「將補丁文件[dll_name引起]它可能已通過其他方式更新,不能再由此修補程序修改錯誤有關更多信息,請聯繫補丁供應商[中止/重試/忽略]「

dll_name是我的dll文件,而且這個錯誤只出現在這個特定的文件中。

它有一個超過20 MB的大小,Total Commander插件根據內容比較文件顯示大約2,800字節的差異。

我在互聯網的深處發現MSI的舊版本有大型文件有很多變化的問題,但是我一直無法找到XP的任何更新或修補程序來解決這個問題,並使我的補丁工作。

我發現的唯一修補程序是:WindowsServer2003-KB983280-x86-ENU.exe for Windows 2003 Server,但它沒有使修補程序正常工作。

我對如何解決這個問題沒有更多的想法,我很樂意接受任何幫助,這可能會導致正確地修復此文件。

回答

1

我在使用InstallShield的工具之前遇到了這個問題。

在我們的例子中,這是由於產生了一個字節級的補丁,它基本上只包含原始版本和當前版本之間不同的字節。這種方法的優點是補丁越小越好。

該方法的缺點是,如果已經應用了另一個較早的修補程序,這會影響最新修補程序中的一個或多個文件,它不能再拼湊更新後的二進制文件,並且會看到您提到的錯誤消息。

我們通過選擇修補程序IDE中的「包含整個文件」選項,然後重新構建修補程序,從而克服了產品中的問題。這使得補丁包含了整個二進制文件。

以下是關於錯誤的詳細信息:

http://kb.flexerasoftware.com/selfservice/microsites/search.do?cmd=displayKC&docType=kc&externalId=Q107088&sliceId=

+0

感謝您的回答。但是,它不是由早期的補丁引起的。它適用於所有其他系統(7,2008,Vista)。 我們寧願不用「包含整個文件」,因爲我們想要最小化補丁大小。 – Luzik 2010-09-02 06:40:41

+0

您是否通過手動將二進制文件複製到目標系統來部署修補程序(在修補程序之間)?這可能會造成字節級修補程序也可能失敗的情況。 (如果您有多個產品安裝程序共享某些相同的組件,則也可能遇到問題,例如,InstallerA有一個補丁程序,用於更新也位於InstallerB中的dll。) – WeekendDiver 2010-09-02 19:32:44

+0

Nope,there修補程序之間沒有修補程序。我們正在測試它,一個接一個地安裝補丁。它只在XP/2k3上失敗.. – Luzik 2010-09-03 06:12:00