若要驗證資料庫,請使用特殊的驗證工具來將包含 內部一致性評估工具 的 .cub 檔案合併至您的資料庫、執行 ICE,以及報告結果。 Microsoft Windows 軟體開發工具組 (SDK) 中提供了數個這類工具。 來自第三方廠商的撰寫環境也可以將 ICE 驗證系統納入其撰寫環境。 您也可以撰寫自己的工具來執行 ICE 驗證。 大部分的 ICE 驗證工具會將 .cub 檔案和資料庫合併到第三個暫存資料庫。 Windows Installer 會在 .cub 檔案中執行每個 ICE 時,顯示警告、錯誤、偵錯資訊和 API 錯誤。 當安裝程式完成執行 ICE 時,它會關閉 .msi 檔案、.cub 檔案和暫存資料庫,而不會儲存任何變更。 驗證測試會維持 .msi 檔案和 .cub 檔案不變。
ICE 自定義動作會呼叫 MsiProcessMessage 並張貼INSTALLMESSAGE_USER訊息,來與用戶通訊。 ICE 訊息通常會傳回如下的資訊:
- 發現錯誤的 ICE 名稱
- 建立 ICE 的日期
- ICE 的作者
- 上次修改 ICE 的日期。
- 導致 ICE 失敗之 API 錯誤的描述
- 錯誤描述
- 對使用者的警告
- 包含錯誤或警告的資料庫數據表名稱
- 包含錯誤或警告的數據表資料行名稱
- 包含錯誤或警告之數據表的主鍵
- HTML 檔案的 URL,提供偵錯建議
- 可包含其他資訊的字串
安裝套件的作者可以撰寫 ICE 自定義動作,或使用 SDK 所提供的 .cub 檔案中包含的標準 ICE 集合。 如需有關如何編寫 ICE 的詳細資訊,請參閱 編寫 ICE。
撰寫適當的 ICE 進行驗證之後,開發人員必須將自定義動作收集到稱為 .cub 檔案的 .msi 資料庫中,這個檔案只包含 ICE 及其所需的數據表。 無法安裝 .cub 檔案,而且只能用來儲存和提供 ICE 自定義動作的存取權。 如需建立 .cub 檔案的詳細資訊,請參閱 建置 ICE 資料庫。 或者,開發人員可以使用 ICE 參考中所述的現有 ICE 來驗證其安裝套件。 您可以從 SDK 所提供的標準 .cub 檔案取得這些 ICE。
安裝資料庫數據表編輯器 Orca 或驗證工具 msival2 會提供 Logo.cub、Darice.cub 和 Mergemod.cub 檔案。 Logo.cub 檔案中的 ICE 集合是 Darice.cub 檔案中那些 ICE 的子集。 如果您的套件使用 Darice.cub 通過驗證,那麼它也會使用 Logo.cub 通過。 Mergemod.cub 包含一組用來驗證合併模組的 ICE。 如需詳細資訊,請參閱 合併模組 ICE 參考。
驗證安裝套件
- 取得或撰寫適當的 ICE 自定義動作。 您可以使用 ICE 參考中描述的一個或多個現有的 ICE。 如果您的驗證需要尚未在此清單中的 ICE,您可以建立新的 ICE,方法如 建置 ICE 中所述。
- 準備包含所有 ICE 自定義動作的 ICE 資料庫。 如需準備 .cub 檔案的相關資訊,請參閱 建置 ICE 資料庫 節。
- 將 .cub 檔案和 .msi 檔案提供給套件驗證工具,例如 Orca.exe 或 Msival2.exe。
請注意,應該驗證合併模組,如 驗證合併模組中所述。