在安裝過程中進行CRC檢查
Windows Installer 提供檔案的循環冗餘檢查 (CRC)。 CRC 檢查是類似總和檢查碼的錯誤檢查機制,可讓應用程式判斷檔案中的資訊是否已修改。 Windows Installer 完成複製檔案之後,它會從來源和目的地檔案取得 CRC 值。 安裝程式會檢查檔案中的原始CRC戳記,與從複本計算出的CRC進行比較。 如果原始 CRC 值不是 Null,而且與複製上計算的 CRC 不同,CRC 檢查就會失敗。 如果原始 CRC 為 Null,則不會進行檢查。
Windows Installer 會在下列情況下對檔案執行 CRC 檢查:
- 如果 MSICHECKCRCS 屬性 已設定,且 msidbFileAttributesChecksum 包含在 File 資料表中檔案記錄的 Attributes 字段中,。 安裝程式會在安裝、複製或移動檔案之後,執行CRC檢查一次。
- 如果 MSICHECKCRCS 屬性 已設定,且 msidbFileAttributesChecksum 包含在 File 數據表中檔案記錄的 [屬性] 欄位中,,安裝程式會在修補檔案之後執行 CRC 檢查。
- 如果 msidbFileAttributesChecksum 包含在 File 數據表中檔案記錄的 Attributes 字段中,安裝程式會在系結映像之前執行 CRC 檢查。
如果系結映像之前檢查失敗,安裝程式會在記錄檔中報告下列兩個錯誤,並繼續安裝而不系結檔案。
代碼 | 消息 |
---|---|
2941 | 無法計算檔案 [2] 的 CRC。 |
2942 | BindImage 動作尚未在 [2] 檔案上執行。 |
如果在複製、複製或修補未壓縮的檔案之後,檢查失敗,安裝程式會回報下列錯誤。 如果複製壓縮檔之後檢查失敗,也會回報此錯誤。 如果檔案具有 msidbFileAttributesVital 屬性,則檔案對於安裝至關重要,而且使用者會取得重試或取消安裝的選項。 如果檔案在 File 資料表的 [屬性] 資料行中標示為非必要,,則使用者可能會忽略錯誤並繼續、重試或取消安裝。
代碼 | 消息 |
---|---|
1331 | 無法正確複製 [2] 檔案:CRC 錯誤。 |
請注意,只會移動未壓縮的檔案。 如果在移動未壓縮的檔案之後檢查失敗,安裝程式會顯示下列錯誤。 如果檔案具有 msidbFileAttributesVital 屬性,則檔案對於安裝至關重要,而且安裝失敗。 如果檔案在 File 資料表的 [屬性] 資料行中標示為非必要,,則使用者會取得取消或忽略錯誤的選項,並繼續安裝。
程式碼 | 消息 |
---|---|
1332 | 無法正確移動 [2] 檔案:CRC 錯誤。 |
如果在修補未壓縮的檔案之後檢查失敗,安裝程式會顯示下列錯誤。 如果檔案具有 msidbFileAttributesVital 屬性,則檔案對於安裝至關重要,而且安裝失敗。 如果檔案在 File 資料表的 [屬性] 資料行中標示為非必要,,則使用者會取得取消或忽略錯誤的選項,並繼續安裝。
程式碼 | 消息 |
---|---|
1333 | 無法正確修補 [2] 檔案:CRC 錯誤。 |