Share via


MsiEmbeddedChainer 資料表

使用此資料表來撰寫 多套件安裝。 MsiEmbeddedChainer 資料表中的每個資料列都會參考不同的使用者定義函式,可用來從單一套件安裝多個 Windows Installer 套件。 使用者定義函式的 可執行檔 會儲存在 Windows Installer 套件內。

Windows Installer 4.0 或更早版本不支援。 下表從 Windows Installer 4.5 開始提供。

已啟用 遠端桌面服務 角色的 Windows Server 2008 R2: 不支援。 如果已啟用 遠端桌面服務 角色,則使用 MsiEmbeddedChainer 資料表的多個套件安裝會失敗。

若要從單一套件安裝多個套件,MsiEmbeddedChainer 資料表中列出的其中一個使用者定義函式,必須在 [條件] 欄位中有條件陳述式,以評估為執行動作。 如果多個函式具有評估為執行的條件,則只能執行一個函式。 此案例是錯誤,而且無法保證會執行哪個函式。 如果安裝需要其他自訂動作,則應將這些動作撰寫到 CustomAction 資料表 和順序資料表中。

函式必須藉由呼叫 MsiJoinTransaction 函式來聯結目前的安裝,而且必須呼叫 MsiEndTransaction 函式來認可多個套件的安裝。 如果函式在呼叫 MsiEndTransaction之前傳回,安裝程式會復原所有安裝。

MsiEmbeddedChainer 資料表具有下列資料行。

資料行 類型 答案 Nullable
MsiEmbeddedChainer 識別碼 Y N
條件 Condition N Y
CommandLine 格式 化 N Y
來源 CustomSource N N
類型 整數 N N

 

資料行

MsiEmbeddedChainer

資料表的主鍵。 這個值是這個資料列所描述之使用者定義函數的唯一識別碼。

條件

用於執行使用者定義函數的條件陳述式。 您可以使用修改此欄位所評估屬性值的轉換,來啟用或停用 MsiEmbeddedChainer 資料表中列出的函式。 如需詳細資訊,請參閱 在條件陳述式中使用屬性

CommandLine

此欄位中的值是傳遞至 [來源] 資料行中所識別可執行檔之命令列字串的一部分。 安裝程式會將此欄位中的值附加至交易控制碼,以產生命令列。 如果此資料行中的值為 null,命令列只包含交易控制碼。

使用者定義函式之可執行檔的位置。 如果 Type 資料行中的值為 2,此資料行可以包含 二進位資料表中的外部索引鍵。 如果 Type 資料行中的值為 18,則此資料行可以在 File 資料表中包含外部索引鍵。 如果 Type 資料行中的值為 50,則此資料行可以在 Property 資料表中包含外部索引鍵。

類型

MsiEmbeddedChainer 資料表中列出的函式會使用下列自訂動作數數值型別來描述。 此資料行只能包含下列三個數數值型別的值;會忽略任何其他自訂動作旗標組合。

自訂動作類型 自訂動作旗標 十六進位 Decimal
自訂動作類型 2 msidbCustomActionTypeExe + msidbCustomActionTypeBinaryData 0x002 2
自訂動作類型 18 msidbCustomActionTypeExe + msidbCustomActionTypeSourceFile 0x012 18
自訂動作類型 50 msidbCustomActionTypeExe + msidbCustomActionTypeProperty 0x032 50

 

備註

Windows Installer 不會防止此資料表中的使用者定義函式在應用程式的公告期間執行。 您可以在 [條件] 資料行中使用條件陳述式,以防止在公告期間執行函式。

Windows Installer 也提供非內嵌的外部 UI 處理常式,以在 Windows Installer 套件之上建置豐富的使用者介面。 如需搭配 Windows Installer 使用外部 UI 處理常式的詳細資訊,請參閱 使用 MsiSetExternalUI 監視安裝

MsiPackageCertificate 資料表會列出用來驗證進行多個套件安裝之安裝套件身分識別的數位簽章憑證。 您可以使用此表格來減少多套件安裝顯示 使用者帳戶控制 (UAC) 提示,要求系統管理員回應的次數。