私は既存製品のMSIを作成しています。以前のバージョンでは、インストール時にのみ実行するように制限されていなかったカスタムアクションがありましたが、現在はMajorUpgradeでのアンインストールに失敗しています。アンインストール(WiX)のカスタムアクションをスキップ
アンインストール時に特定のカスタムアクションをスキップするようにWiXに指示する方法はありますか?
私は既存製品のMSIを作成しています。以前のバージョンでは、インストール時にのみ実行するように制限されていなかったカスタムアクションがありましたが、現在はMajorUpgradeでのアンインストールに失敗しています。アンインストール(WiX)のカスタムアクションをスキップ
アンインストール時に特定のカスタムアクションをスキップするようにWiXに指示する方法はありますか?
はい、これは新しいインストーラから自動的に実行できます。
ソリューション:
1)あなたは、インストーラの現在のバージョンを構築し、そのプロジェクトから、再び良い MSIを構築するプロジェクトで問題を修正する必要があります。この場合、通常は数KBのMSIデータベースのみが必要です。not the entire setup package(つまり、すべてのインストールファイルを含むCABファイルなど)
2)新しいインストーラでは、以前に実行しますRemoveExistingProductsマシン上の以前のバージョンのMSIを再キャッシュする標準アクション。カスタムアクションは、このコマンドを実行する必要があります
ます。msiexec.exe/FV「< path_to_MSI>」
MSIあなたがステップ#で構築された新しい1 you'beで再キャッシュしようとしています1。このMSIを新しいバージョンのインストーラー(および一部のユーザーがこのバージョンをスキップする場合に備えて)としてリソースとして含める必要があります。このMSIファイルが抽出されたフルパスをパラメーターとしてカスタムアクションに渡します。
基本的には、正しいMSI(カスタムアクションで正しい条件を設定している)で古いインストールを再キャッチする手順を自動化することです。今すぐRemoveExistingProducts標準アクションが実行されると、カスタムアクションで正しい条件が設定され、正常にアンインストールされた、新しくキャッシュされたMSIを使用してWindowsインストーラが古いバージョンのアンインストールをトリガします。
_old_ Uninstallerが実行されますが、AFAIKを使用すると、メジャーアップグレードの前に最初に_patch_することがあります。 –