1

Wix で開発された MSI インストーラーを含む .NET 4 デスクトップ アプリケーションがあります。

現在、アプリケーションがシステム トレイに最小化されて実行されているときに、ユーザーがコントロール パネルからアプリケーションをアンインストールしようとすると、アンインストールが実行され、ProgramFiles の場所からファイルが削除され、まだ実行中のアプリケーションで多くの例外がスローされます。

これを防ぐために、wxs ファイルにカスタム アクション セットを次のように定義しました。

<Custom Action="CheckForRunningInstance" After="ValidateProductID">(REMOVE="ALL") OR NOT(REMOVE="ALL")</Custom>

インストーラーが処理されないようにするために、アプリケーションのインスタンスが現在実行されているかどうかを確認します。MSI ファイルを実行しようとすると正常に動作しますが、ユーザーが [コントロール パネル] > [プログラムの追加と削除] からアプリケーションをアンインストールしようとすると、この CA は実行されません。そのような状況でそれを強制する方法はありますか?

4

1 に答える 1

2

カスタム アクションを InstallExecuteSequenceに配置して、パッケージが完全な UI で実行されていない場合でも呼び出されるようにする必要があります。

于 2012-05-22T09:14:01.020 に答える