移除過程中要執行的設定動作
有兩種方式可以撰寫安裝資料庫,因此只有在卸載套件時才會呼叫動作:
- 如果在 InstallExecuteSequence 數據表中 InstallValidate 巨集指令之後排序 動作,套件作者可能會為 Condition 數據行中的動作指定 REMOVE=“ALL” 的條件。 請注意,在安裝程式執行 InstallValidate 動作之前,REMOVE 屬性在卸載過程中不保證會被設定為 ALL。 請注意,在此情況下,值 "ALL" 必須加上引號。
- 如果動作在 CostFinalize 動作之後排序,以及任何可能變更功能狀態的動作,例如 MigrateFeatureStates 巨集指令,該動作就可以根據特定功能或元件的狀態來設定。 請參閱 條件語句語法。 使用此選項在移除特定功能或元件期間呼叫動作,這可能會在完整移除應用程式之外發生。
請注意,Installed 屬性可用於條件運算式中,以判斷產品是針對整台計算機安裝,還是僅為目前使用者安裝。 若要判斷是否為不同的使用者安裝產品,請檢查 ProductState 屬性。
請注意,在升級過程中,RemoveExistingProducts 動作可能會移除舊版產品。 在此案例中,Upgrade 數據表 也可以將 remove 屬性設定為 ALL。 若要判斷產品是否在升級過程中被移除,請檢查 升級產品代碼 屬性。 安裝程式只會在 RemoveExistingProducts 移除產品時設定此屬性。 安裝程式不會在一般卸載期間設定 屬性,例如使用 Add/Remove 程式移除。