安装过程中的 CRC 检查
Windows Installer 提供文件的循环冗余检验 (CRC)。 CRC 检查是一种类似于校验和的错误检查机制,使应用程序能够确定文件中的信息是否已被修改。 Windows Installer 完成文件复制后,会从源文件和目标文件获取 CRC 值。 安装程序检查印到文件中的原始 CRC,并将其与从副本计算的 CRC 进行比较。 如果原始 CRC 值为非 null 且不同于副本上计算的 CRC,则 CRC 检查失败。 如果原始 CRC 为 null,则不会进行检查。
在以下情况下,Windows Installer 会对文件进行 CRC 检查:
- 如果设置了 MSICHECKCRCS 属性,并且 File 表中文件记录的 Attributes 字段中包含 msidbFileAttributesChecksum。 安装程序在安装、复制或移动文件后进行一次 CRC 检查。
- 如果设置了 MSICHECKCRCS 属性,并且 File 表中文件记录的 Attributes 字段中包含 msidbFileAttributesChecksum,安装程序将在修补文件后进行 CRC 检查。
- 如果 File 表中文件记录的 Attributes 字段中包含 msidbFileAttributesChecksum,安装程序将在绑定映像之前进行 CRC 检查。
如果在绑定映像之前检查失败,安装程序将在日志文件中报告以下两个错误,并在不绑定文件的情况下继续进行安装。
代码 | Message |
---|---|
2941 | 无法计算文件 [2] 的 CRC。 |
2942 | 尚未对 [2] 文件执行 BindImage 操作。 |
如果在复制或修补未压缩的文件后检查失败,安装程序将报告以下错误。 如果在复制压缩文件后检查失败,也会报告此错误。 如果文件具有 msidbFileAttributesVital 属性,则认为该文件对安装至关重要,并且用户可以选择重试或取消安装。 如果文件在 File 表的 Attributes 列中被标记为非重要,则用户可以忽略错误并继续、重试或取消安装。
代码 | Message |
---|---|
1331 | 无法正确复制 [2] 文件: CRC 错误。 |
请注意,仅移动未压缩的文件。 如果在移动未压缩的文件后检查失败,安装程序将显示以下错误。 如果文件具有 msidbFileAttributesVital 属性,则认为该文件对安装至关重要,并且安装失败。 如果文件在 File 表的 Attributes 列中被标记为非重要,则用户可以选择取消或者忽略错误并继续安装。
代码 | Message |
---|---|
1332 | 无法正确移动 [2] 文件: CRC 错误。 |
如果在修补未压缩的文件后检查失败,安装程序将显示以下错误。 如果文件具有 msidbFileAttributesVital 属性,则认为该文件对安装至关重要,并且安装失败。 如果文件在 File 表的 Attributes 列中被标记为非重要,则用户可以选择取消或者忽略错误并继续安装。
代码 | Message |
---|---|
1333 | 无法正确修补 [2] 文件: CRC 错误。 |