既にインストールされているアプリケーションのバックアップを作成するためのvbscriptがあります。 私はそれをカスタムアクションで追加しました。私は以前に1をインストールする1つの以上のバックアップフォルダを持つことになりますtwice..soWixインストールされていない、アンインストールされ、アップグレードされていないためのカスタム条件
が実行されているインストールされていないOR UPGRADINGPRODUCTCODE
問題は、アップグレードカスタムアクションの間にあります。
既にインストールされているアプリケーションのバックアップを作成するためのvbscriptがあります。 私はそれをカスタムアクションで追加しました。私は以前に1をインストールする1つの以上のバックアップフォルダを持つことになりますtwice..soWixインストールされていない、アンインストールされ、アップグレードされていないためのカスタム条件
が実行されているインストールされていないOR UPGRADINGPRODUCTCODE
問題は、アップグレードカスタムアクションの間にあります。
UPGRADINGPRODUCTCODEはあなたが使いたいものではありません。 NOT UPGRADINGPRODUCTCODEを使用してください。
このプロパティは、インストールされているMSIのサーバーコンテキスト内に現在インストールされているバージョンのmsiを実行しているときに、インストーラによって設定されます。これは、アップグレード中に "RemoveExistingProducts"を実行するときに実行されるものです。今インストールしているインストールでは、 "NOT Installed" = trueと "UPGRADINGPRODUCTCODE" = falseという問題があります。インストーラが以前のインストールを実行して削除すると、このインストールには "NOT Installed" = falseがありますが、 "UPGRADINGPRODUCTCODE" = trueになるため、カスタムアクションが実行されます。
私は何に条件を設定することを検討してしまうと、インストールは、以前のバージョンを検出して、私たちはアップグレードするときに、この条件だけ実行されます
WIX_UPGRADE_DETECTED AND NOT UPGRADINGPRODUCTCODE AND NOT REMOVE~="ALL"
Here's WIX_UPGRADE_DETECTEDプロパティ
上のいくつかの情報になりますが、古いバージョンを削除しているときには実行されず、アンインストール時には実行されません。また、RemoveExistingProducts afterInstallInitializeをスケジューリングして、ファイルが削除または更新される前にMSIインストールのサーバーコンテキストの最早にバックアップが作成されるようにします。
また、MSIが失敗したり、最後にロールバックされたりするようなWixカスタムアクションが必要です。
Execute = "rollback"を作成し、正しい場所にスケジュールするだけで済みます。 IISを停止するアクションがある場合は、このロールバックアクションを停止するアクションの前にshceduleする必要があります。 –
あなたはすでに何を試しましたか? –
<インストールアクション> = "InstallFiles">インストールされていないか、またはREMOVE〜= "ALL")またはUPGRADINGPRODUCTCODE –
"インストールされていない、アンインストールしてアップグレードしていません"という条件をすべてtrueにします。 –