共用方式為


自定義動作類型 1

此自定義動作會呼叫以 C 或 C++撰寫的動態連結庫 (DLL)。

DLL 是從暫存二進位數據流產生的。 CustomAction 數據表的 [來源] 字段 包含 Binary 數據表索引鍵。

Binary 資料表中的數據行包含數據流數據。 系統會為每個數據列配置個別的數據流。 您可以使用 MsiRecordSetStream,後面接著 MsiViewModify,將記錄插入數據表,以從檔案插入新的二進位數據。 叫用自定義動作時,數據流數據會複製到臨時檔,然後根據自定義動作的類型進行處理。

類型值

CustomAction 資料表 的 Type 數據行中包含下列旗標位,以指定基本數值類型。

常數 十六進位 十進位
msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData 0x001 1

 

目標

DLL 會透過 CustomAction 數據表的 [目標] 欄位中名為 的進入點來呼叫 ,並將單一自變數傳遞至目前安裝會話的句柄。 數據表中指定的進入點名稱必須符合從 DLL 導出的進入點名稱。 請注意,如果未指定專案函式,則為 。DEF 檔案或 /EXPORT: 鏈接器規格,名稱可能有前置底線和 “@4” 後綴。 呼叫的函式必須指定呼叫慣例__stdcall。

傳回處理選項

CustomAction 資料表 的 Type 數據行中包含選擇性旗標位,以指定傳回處理選項。 如您選擇與值的描述,請參閱 自訂動作傳回處理選項

執行排程選項

CustomAction 資料表 的 Type 數據行中包含選擇性旗標位,以指定執行排程選項。 這些選項可控制自定義動作的多重執行。 如您設定的描述,請參閱 自訂動作執行排程選項

In-Script 執行選項

在 customAction 資料表 的 Type 數據行中包含選擇性旗標位,以指定腳本內執行選項。 這些選項會將動作程式代碼複製到執行、復原或認可腳本。 如您選項的描述,請參閱 自訂動作 In-Script 執行選項

傳回值

請參閱 自定義動作傳回值。

言論

呼叫動態連結庫 (DLL) 的自定義動作需要安裝會話的句柄。 如果這也是延遲執行的自定義動作,則會話在執行安裝腳本期間可能已不存在。 如需此類型之自訂動作如何取得內容資訊的資訊,請參閱 取得延遲執行自定義動作的內容資訊

匯出資料庫數據表時,每個數據流都會在以數據表命名的子資料夾中寫入個別的檔案,並使用主鍵做為檔名(二進位數據表的 Name 數據行),預設擴展名為 “.ibd”。 如果檔案系統或版本控制系統不支援長檔名,則名稱應該使用8.3格式。 永續性封存盤案會以所使用的檔名取代數據流數據,以便在匯入數據表時找到數據。

Custom_Actions

Dynamic-Link 連結庫

取得延遲執行自定義動作的內容資訊