RemoveExistingProducts 動作
RemoveExistingProducts 巨集指令會經歷 Upgrade 資料表 的 ActionProperty 資料行中列出的產品名稱,並叫用並行安裝來依序移除產品。 針對每個並行安裝,安裝程式會將 ProductCode 屬性設定為產品代碼,並將 REMOVE 屬性設定為 Upgrade 資料表之 Remove 欄位中的值。 如果 [移除] 欄位是空白的,其值會預設為 ALL,而安裝程式會移除整個產品。
安裝程式只會在第一次安裝產品時執行 RemoveExistingProducts 動作。 它不會在 維護安裝 或卸載期間執行動作。
序列限制
RemoveExistingProducts 巨集指令必須在下列其中一個位置的動作順序中排程。
- InstallValidate 巨集指令與InstallInitialize 動作之間。 在此情況下,安裝程式會在安裝新應用程式之前完全移除舊的應用程式。 這是動作沒有效率的位置,因為所有重複使用的檔案都必須重新編排。
- 在 InstallInitialize 動作和產生執行腳本的任何動作之前。
- 在 InstallExecute 巨集指令或InstallExecuteAgain 巨集指令和InstallFinalize 動作之間。 一般而言,最後三個動作會排程在另一個動作之後:InstallExecute、RemoveExistingProducts 和 InstallFinalize。 在此情況下,會先安裝更新的檔案,然後移除舊檔案。 不過,如果移除舊應用程式失敗,安裝程式會復原移除舊應用程式和新應用程式的安裝。
- 在 InstallFinalize 動作之後。 這是動作最有效率的位置。 在此情況下,安裝程式會先更新檔案,再移除舊應用程式。 安裝期間只會安裝要更新的檔案。 如果移除舊應用程式失敗,安裝程式只會回復舊應用程式的卸載。
ActionData 訊息
欄位 | 動作資料的描述 |
---|---|
[1] | 已移除產品。 |
備註
Windows Installer 會在執行此動作時設定 UPGRADEPRODUCTCODE 屬性。