RemoveExistingProducts アクション

RemoveExistingProducts アクションは、Upgrade テーブルの ActionProperty 列に記載されている製品コードを確認し、同時インストールを呼び出すことによって順番に製品を削除します。 同時インストールごとに、インストーラーは、ProductCode プロパティを製品コードに設定し、REMOVE プロパティを Upgrade テーブルの Remove フィールドの値に設定します。 Remove フィールドが空白である場合、その値は既定値の ALL になり、インストーラーは製品全体を削除します。

インストーラーは、初めて製品をインストールするときにのみ RemoveExistingProducts アクションを実行します。 メンテナンス インストールまたはアンインストール中にはアクションを実行しません。

シーケンスの制限

RemoveExistingProducts アクションは、アクション シーケンス内で次のいずれかの位置にスケジュールする必要があります。

  • InstallValidate アクションInstallInitialize アクションの間。 この場合、インストーラーは、新しいアプリケーションをインストールする前に古いアプリケーションを完全に削除します。 再利用されるすべてのファイルを再コピーする必要があるため、これは、アクションの非効率的な配置です。
  • InstallInitialize アクションの後で、実行スクリプトを生成するすべてのアクションの前。
  • InstallExecute アクション (または InstallExecuteAgain アクション) と InstallFinalize アクションの間。 通常、最後の 3 つのアクションは、InstallExecute、RemoveExistingProducts、InstallFinalize の順に連続してスケジュールされます。 この場合は、更新されるファイルが最初にインストールされ、古いファイルが次に削除されます。 ただし、古いアプリケーションの削除に失敗した場合、インストーラーは、古いアプリケーションの削除と新しいアプリケーションのインストールの両方をロールバックします。
  • InstallFinalize アクションの後。 これは、アクションの最も効率的な配置です。 この場合、インストーラーは、古いアプリケーションを削除する前にファイルを更新します。 更新されるファイルのみがインストール中にインストールされます。 古いアプリケーションの削除に失敗した場合、インストーラーは、古いアプリケーションのアンインストールのみをロールバックします。

ActionData のメッセージ

フィールド アクション データの説明
[1] 製品を削除しました。

 

解説

Windows インストーラーは、このアクションを実行するときに UPGRADINGPRODUCTCODE プロパティを設定します。