移除期間要執行的調整動作
有兩種方式可以撰寫安裝資料庫,如此一來,只有在卸載封裝時才會呼叫動作:
- 如果在InstallExecuteSequence 資料表的InstallValidate 巨集指令之後排序動作,套件作者可能會為 Condition 資料行中的動作指定 REMOVE=「ALL」 的條件。 請注意, 在 安裝程式執行 InstallValidate 動作之前,REMOVE 屬性不保證會在卸載期間設定為 ALL。 請注意,在此案例中,需要 ALL 值周圍的引號。
- 如果動作在 CostFinalize 巨集指令 之後排序,以及任何可變更功能狀態的動作,例如 MigrateFeatureStates 巨集指令,該動作可以設定為特定功能或元件的狀態。 請參閱 條件陳述式語法。 使用此選項在移除特定功能或元件期間呼叫動作,這可能會在應用程式完全移除之外發生。
請注意, Installed 屬性可用於條件運算式,以判斷產品是針對每部電腦還是目前使用者安裝。 若要判斷是否為不同的使用者安裝產品,請檢查 ProductState 屬性。
請注意, RemoveExistingProducts 動作可能會在升級期間移除舊版的產品。 在此情況下,Upgrade 資料表也可以將REMOVE屬性設定為 ALL。 若要判斷升級是否要移除產品,請檢查 UPGRADEPRODUCTCODE 屬性。 安裝程式只會在 RemoveExistingProducts 移除產品時設定此屬性。 安裝程式不會在一般卸載期間設定 屬性,例如使用 Add/Remove 程式移除。