延後執行自訂動作

延後執行自訂動作的目的是將系統變更的執行延遲到執行安裝腳本的時間。 這與一般自訂動作或標準動作不同,其中安裝程式會在序列資料表或 MsiDoAction呼叫時立即執行動作。 延後執行自訂動作可讓套件作者在執行安裝腳本時,于特定時間點指定系統作業。

安裝程式不會在處理安裝順序時執行延後執行自訂動作。 相反地,安裝程式會將自訂動作寫入安裝腳本。 在此情況下,安裝程式設定的唯一模式參數是MSIRUNMODE_SCHEDULED。 如需執行模式參數的描述,請參閱 MsiGetMode

延後執行自訂動作必須在執行腳本產生之 區段內的執行順序資料表中排程。 延後執行自訂動作必須出現在 InstallInitialize 之後,並出現在動作順序中的 InstallFinalize 之前。

設定屬性、功能狀態、元件狀態或目標目錄的自訂動作,或藉由將資料列插入順序資料表來排程系統作業的自訂動作,在許多情況下可以安全地使用立即執行。 不過,直接變更系統的自訂動作或呼叫另一個系統服務,必須延後到執行安裝腳本的時間。 如需自訂動作與主要安裝執行緒之間潛在衝突的詳細資訊,請參閱 同步和非同步自訂動作

因為安裝腳本可以在寫入它的安裝會話之外執行,所以在執行安裝腳本期間,會話可能已不存在。 這表示在安裝順序期間,原始會話控制碼和屬性資料集不適用於延後執行自訂動作。 呼叫動態連結程式庫的延後自訂動作 (DLL) 傳遞只能用來取得非常有限的資訊的控制碼,如 取得延後執行自訂動作的內容資訊中所述。

請注意,延後自訂動作,包括 復原自訂動作認可自訂動作,是唯一可在使用者安全性內容外部執行的動作類型。

自訂動作In-Script執行選項

自訂動作參考