msi 日志里的 rollback 只是安装失败后的撤销阶段,真正原因通常出现在回滚开始之前。排查时不要只搜索最后一行 1603,而要从第一个 return value 3 附近向上阅读,找到最早失败的自定义操作、权限错误或缺失文件。
先定位第一个 Return value 3
用记事本或日志查看器打开详细日志,搜索第一个 Return value 3。向上查看 20 至 50 行,重点找 Action start、Action ended、Error 和自定义操作名称。截图中的脚本错误先于回滚出现,因此真正要修的是失败脚本或它调用的程序,而不是 Rollback 本身。

把最终代码与前置错误分开
日志末尾的 MainEngineThread is returning 1603 是汇总结果,不会说明根因。继续向前查找具体编号,如 1720、2203、1402,或“Access denied”“file not found”等文字,并记录发生它们的动作名称。权限类错误先核对安装源和目标目录权限;缺失文件先核对 MSI、CAB 与网络源,不要直接关闭回滚功能。

用日志查看器交叉核对时间线
当文本太长时,可用 CMTrace 等只读日志查看器打开文件,按错误颜色和时间顺序定位首个异常。若日志出现 2203、1402 等错误,结合对应路径或注册表键检查访问权限;事件查看器的 MsiInstaller 记录可用于核对产品名、时间和最终错误码,但不能替代详细 MSI 日志。修改权限前先备份并限定到具体目录或键,避免给 Everyone 全盘授权。












