建置 ICE

如果您找不到ICE 參考中列出的現有 ICE 自訂動作所需的內部一致性評估工具,您必須準備自己的 ICE 來驗證您的套件。

撰寫 ICE 自訂動作時,您應該執行下列動作:

  • 僅根據所顯示資料表中所列類型的自訂動作,以 ICE 為基礎。
  • 呼叫 MsiProcessMessage 並張貼INSTALLMESSAGE_USER類型的訊息。 撰寫 ICE 訊息時,請遵循 ICE 訊息指導方針中的訊息格式。
  • 撰寫您的 ICE,使其擷取任何 API 錯誤,且一律會傳回ERROR_SUCCESS。 這是允許後續自訂動作在 ICE 失敗之後執行的必要條件。

ICE 自訂動作僅限於下列自訂動作類型。

自訂動作類型 Description
自訂動作類型 1 二進位資料流程中的 DLL
自訂動作類型 2 二進位資料流程中的 EXE
自訂動作類型 5 二進位資料流程中的 JScript
自訂動作類型 6 二進位資料流程中的 VBScript
自訂動作類型 37 JScript 程式碼作為字串
自訂動作類型 38 VBScript 程式碼作為字串

 

撰寫 ICE 自訂動作時,請勿執行下列動作:

  • 請勿假設 ICE 接收的引擎控制碼是安裝程式資料庫的安裝實例。 如果不是安裝實例,則不會定義某些屬性、不會解析來源和目標目錄,而且未定義目前的功能狀態。
  • 請勿依賴任何安裝程式動作、自訂動作或其他 ICE 的先前執行或非執行。 由於先前的 ICE 可能已在任何資料表中建立暫存資料行,因此作者應該盡可能依名稱參考資料行。 ICE 應該在結束之前清除任何暫存資料行或資料表。
  • 請勿假設作者可以存取資料庫來原始目錄的映射。
  • 請勿假設對資料庫所做的變更不會保存。

C++ 中的範例 ICE

VBScript 中的範例 ICE