復原自訂動作

當安裝程式處理安裝腳本時,它會同時產生復原腳本。 除了復原腳本之外,安裝程式還會儲存安裝期間所刪除之每個檔案的複本。 這些檔案會保留在隱藏的系統目錄中。 安裝完成後,會刪除復原腳本和儲存的檔案。 如果安裝失敗,安裝程式會嘗試復原安裝期間所做的變更,並還原電腦的原始狀態。

雖然將資料列插入資料庫資料表來排程系統作業的自訂動作是由安裝復原所反轉,但是直接變更系統的自訂動作,或是發出命令給其他系統服務的自訂動作,不一定會由復原反轉。 復原自訂動作是安裝程式只在安裝復原期間執行的動作,其用途是反轉已對系統進行變更的自訂動作。

復原自訂動作是 延後執行自訂動作的類型,因為它會在安裝順序期間叫用時延後執行。 它不同于一般延後自訂動作,因為它只會在復原期間執行。 復原自訂動作必須一律在延後自訂動作之前,它會在動作順序中回復。 復原自訂動作也應該處理延遲自訂動作在執行中中斷的情況。 例如,如果使用者在執行自訂動作時按下 [取消] 按鈕。

請注意,復原自訂動作無法以非同步方式執行。 請參閱 同步和非同步自訂動作

回復自訂動作的補充是 認可自訂動作。 安裝程式會在安裝順序期間執行認可自訂動作、將自訂動作複製到復原腳本中,但不會在復原期間執行動作。

請注意,復原自訂動作可能無法移除認可自訂動作所做的所有變更。 雖然安裝程式會將復原和認可自訂動作寫入復原腳本中,但認可自訂動作只會在安裝程式成功處理安裝腳本之後執行。 認可自訂動作是在復原腳本中執行的第一個動作。 如果認可自訂動作失敗,安裝程式會起始復原,但只能復原已寫入復原腳本的作業。 這表示,根據認可自訂動作,復原可能無法復原動作所做的變更。 您可以撰寫自訂動作以忽略傳回碼,以忽略認可自訂動作中的失敗。

當安裝程式執行復原自訂動作時,將設定的唯一模式參數是MSIRUNMODE_ROLLBACK。 如需執行模式參數的描述,請參閱 MsiGetMode

您可以將選項旗標新增至 CustomAction 資料表的 [類型] 欄位,以指定復原自訂動作。 如需指定復原自訂動作的選項旗標 ,請參閱自訂動作In-Script執行選項

復原和認可自訂動作在停用復原時不會執行。 如果套件作者需要這些類型的自訂動作才能正確安裝,他們應該在停用復原時防止安裝繼續的條件中使用 RollbackDisabled 屬性。 如需如何停用復原的資訊,請參閱 復原安裝 (Windows Installer)