我发现我们的一个补丁在几个客户站点上出现了异常的零星故障。最终错误代码为 1648(找不到该组补丁的有效序列),这是因为尝试从其中一个补丁转换读取摘要信息流时出现错误 2219(无效的安装程序数据库格式)。但我怀疑这只是早期无声错误的副作用。我们的补丁都使用 MinorUpdateTargetRTM 属性,因此实际上没有什么可排序的,因为任何以前安装的补丁都会自动被取代。我们的客户通常操作数百台几乎相同的笔记本电脑,并且大多数都安装了此更新。在大多数情况下,只有一台设备无法更新。
日志的关键部分如下。初始化已完成,Windows 安装程序服务器进程开始执行执行序列。最后一个正常日志条目是“执行操作:ISSetupFilesExtract”。 ISSetupFilesExtract 是执行序列中的第一个操作。停顿了三分钟,然后看起来整个安装以某种方式重置并重新开始。下一个日志条目由客户端进程写入,通常服务器进程将继续运行执行序列。在安装结束之前,我不会期望看到来自客户端进程的另一个日志条目。我怀疑这里发生了某种灾难性故障,但我不知道它可能是什么。只有在发生这种神秘的重置之后,SequencePatches 才会失败。第一次就成功完成了。
MSI (s) (C4:58) [09:28:32:565]: Doing action: INSTALL
Action start 9:28:32: INSTALL.
MSI (s) (C4:58) [09:28:32:581]: Running ExecuteSequence
MSI (s) (C4:58) [09:28:32:581]: Transforming table InstallExecuteSequence.
MSI (s) (C4:58) [09:28:32:581]: Transforming table InstallExecuteSequence.
MSI (s) (C4:58) [09:28:32:581]: Note: 1: 2262 2: InstallExecuteSequence 3: -2147287038
MSI (s) (C4:58) [09:28:32:581]: Doing action: ISSetupFilesExtract
<-- What happened here?! -->
=== Verbose logging started: 7/21/2014 9:31:38 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\MyCompany\Pwhc\Apps\AplPch.exe ===
MSI (c) (44:50) [09:31:38:192]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
我的问题是,有谁知道什么可能导致安装过程像这样“重置”,我能做些什么吗?正如我所说,这个补丁在 99% 的情况下都能正常安装。故障机器的完整日志可用:https://docs.google.com/document/d/1LK6HdIcetKOGqFbi5nGKAuDolvhZ3PcLxzJHv2wNDsQ/pub。
谢谢。
回复评论的附加信息:
我们的产品使用 MSI 来发布服务包,并使用补丁来发布单点版本。每个补丁都是累积性的,并通过 MinorUpdateTargetRTM 属性取代所有先前的补丁。它们主要用于更新应用程序文件。我们始终包含整个文件以提高可靠性,并且不使用位级补丁。基本 MSI 为 46 MB,包含 1778 个文件(这是一个复杂的企业产品)。失败的补丁非常大,有 57 MB。它添加了 240 个新文件并更新了 413 个现有文件。
听起来你确实在有效地使用补丁,但你肯定破坏了我的补丁的第一条规则:它应该小于其基本 MSI.
原因很简单明了补丁只是已经生效的更新的交付机制。因此,它只是一个比原始设置本身更复杂、更容易出错的容器,当它的大小超过原始 MSI 时,根本没有明显的理由使用该补丁吗?您可以直接运行完整的设置而不进行修改吗?事实上,您应该在出现问题的系统上进行尝试。
也许我错过了一些重要的事情?也许它安装得更快?精心编写的次要升级或不卸载并重新安装而只是取消注册旧版本(RemoveExistingProducts 的后期排序)的主要升级应该同样快。
尽管拥有多年的经验和部署专业知识,但我并不是修补专家。我积极尝试尽量减少补丁的使用,因为它通常带来的麻烦大于其价值。但这是我的一些修补经验的帖子.
如果这看起来根本没有答案,我深表歉意,但我觉得这是一个有效的输入,因为您的补丁在 57MB 下似乎非常不必要,而且您肯定已经有了解决方法:完整更新 MSI。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)