Windows インストーラーでは、ファイルの循環冗長チェック (CRC) を使用できます。 CRC チェックは、チェックサムと同様のエラー チェック メカニズムであり、ファイル内の情報が変更されたかどうかをアプリケーションで判断できるようになります。 Windows インストーラーにより、ファイルのコピーが完了すると、ソース ファイルとコピー先ファイルの両方から CRC 値が取得されます。 インストーラーでは、ファイルにスタンプされた元の CRC がチェックされ、コピーから計算された CRC と比較されます。 元の CRC 値が null 以外で、コピーで計算される CRC と異なる場合、CRC チェックは失敗します。 元の CRC が null の場合、チェックは行われません。
Windows インストーラーは、次の場合にファイルに対して CRC チェックを実行します。
- MSICHECKCRCS プロパティが設定され、msidbFileAttributesChecksum がファイル テーブル内のファイルのレコードの属性フィールドに含まれている場合。 インストーラーは、ファイルのインストール、複製、または移動後に CRC チェックを 1 回実行します。
- MSICHECKCRCS プロパティ が設定され、msidbFileAttributesChecksum がファイル テーブル内のファイルのレコードの属性フィールドに含まれている場合、インストーラーはファイルにパッチを適用した後に CRC チェックを実行します。
- msidbFileAttributesChecksum がファイル テーブル内のファイルのレコードの属性フィールドに含まれている場合、インストーラーはイメージをバインドする前に CRC チェックを実行します。
イメージをバインドする前にチェックが失敗した場合、インストーラーはログ ファイルで次の 2 つのエラーを報告し、ファイルをバインドせずにインストールを続行します。
| コード | Message |
|---|---|
| 2941 | ファイル [2] の CRC を計算できません。 |
| 2942 | BindImage アクションが [2] ファイルに対して実行されませんでした。 |
圧縮されていないファイルがコピー、複製、または修正プログラムが適用された後にチェックが失敗した場合、インストーラーにより次のエラーが報告されます。 このエラーは、圧縮ファイルのコピー後にチェックが失敗した場合にも報告されます。 ファイルに msidbFileAttributesVital 属性がある場合、ファイルはインストールに不可欠であると見なされ、ユーザーはインストールを再試行またはキャンセルするオプションを取得します。 ファイル テーブルの [属性] 列でファイルが不可欠ではないとしてマークされている場合、ユーザーはエラーを無視し、インストールを続行、再試行、またはキャンセルする可能性があります。
| コード | Message |
|---|---|
| 1331 | [2] ファイルを正しくコピーできませんでした。CRC エラー。 |
圧縮されていないファイルのみが移動されることに注意してください。 圧縮されていないファイルの移動後にチェックが失敗した場合、インストーラーにより次のエラーが表示されます。 ファイルに msidbFileAttributesVital 属性がある場合、ファイルはインストールに不可欠であると見なされ、インストールは失敗します。 ファイル テーブルの [属性] 列でファイルが不可欠ではないとしてマークされている場合、ユーザーはインストールをキャンセルするか、またはエラーを無視して続行するオプションを取得します。
| コード | Message |
|---|---|
| 1332 | [2] ファイルを正しく移動できませんでした。CRC エラー。 |
圧縮されていないファイルにパッチを適用した後にチェックが失敗した場合、インストーラーにより次のエラーが表示されます。 ファイルに msidbFileAttributesVital 属性がある場合、ファイルはインストールに不可欠であると見なされ、インストールは失敗します。 ファイル テーブルの [属性] 列でファイルが不可欠ではないとしてマークされている場合、ユーザーはインストールをキャンセルするか、またはエラーを無視して続行するオプションを取得します。
| コード | Message |
|---|---|
| 1333 | [2] ファイルにパッチを正しく適用できませんでした。CRC エラー。 |