我遇到了有关Windows Installer程序的问题。我正在使用一个流行的安装向导程序,它使用MSI安装引擎。它提供了差异修补功能,Windows Installer当然支持它。
但是,我在尝试在WinXP(SP3)和2003(SP2)上应用补丁时遇到了问题。
我收到了1328 Windows Installer错误:
“将补丁应用到文件[dll_name]时出错它可能已通过其他方式更新,此补丁无法再修改。有关详细信息,请联系您的补丁供应商。[中止/重试/忽略]”
dll_name是我的dll文件,只有此特定文件才会出现此错误。
它有超过20 MB的大小,并且按内容比较文件的Total Commander插件显示大约2,800字节的差异。
我发现在互联网的深处,旧版本的MSI存在大文件的问题,其中有很多变化,但是我无法找到任何更新或修补程序的XP来解决这个问题,让我的补丁工作。
我找到的唯一修补程序是:用于Windows 2003 Server的WindowsServer2003-KB983280-x86-ENU.exe,但它没有使补丁工作。
我对如何解决此问题没有进一步的想法,我很乐意收到任何帮助,这可能会导致正确修补此文件。
答案 0 :(得分:1)
在使用InstallShield的工具之前,我遇到过这个。
在我们的例子中,它是由于生成了一个字节级补丁,它基本上只包含原始版本和当前版本之间不同的字节。这种方法的优点是补丁尽可能小。
该方法的缺点是,如果已经应用了另一个早期补丁影响最新补丁中的一个或多个文件,它就不能再将更新的二进制文件组合在一起,您将收到您提到的错误消息。
我们通过在补丁IDE中选择“包含整个文件”选项来克服我们产品中的问题,然后我们重新构建了补丁。这使得补丁包含了整个二进制文件。
以下是有关错误的更多信息: