2012-03-22 31 views
8

私は一種の悲惨さです。私はインストーラをインストールしトレイアイコンアプリ(共通.exe)を起動しましたアンインストール前にWiXアプリケーションを閉じる - 開いているアプリケーションメッセージを閉じる

これは正常に動作していますが、このアプリケーションを手動で終了するようにユーザーに指示する前にそのアプリケーションを停止したいのです。ルーチンを削除すると、トレイアイコンは削除されますが、プロセスはまだ実行されています。

私は

<CustomAction Id="CloseTrayApp" ExeCommand="-exit" FileKey="TrayApp" Execute="immediate" Return="asyncNoWait" /> 

<InstallExecuteSequence> 
    <Custom Action="CloseTrayApp" Before="InstallValidate" /> 
</InstallExecuteSequence> 

(あるいは中に)アンインストールする前にアプリを閉じるには、このカスタムアクションを適用しかし、「実行中のすべてのアプリケーションを閉じて」ダイアログがまだポップアップしますが、私は、これは私の問題を解決することを考えました。

私は既にCloseActionを使用しようとしましたが、物事をコンパイルする際にエラーが発生して急いで使用しました。それはWixUtils名前空間が不足していることができることを言いますが、私はそれがあることをダブルチェック:

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 

私はpopingダイアログウィンドウを回避し、実行するために、このカスタムアクションをトリガーするにはどうすればよいですか?

答えて

7

また、WixUtilExtension.dllへの参照を追加する必要があります。 Visual Studio/Votiveを使用している場合は、参照の追加を右クリックし、[ProgramFilesFolder] WindowsインストーラXML v3.5 \ binからDLLを選択します。

Using Standard Custom Actions

がCloseAppカスタムアクションは、それが勝ったという制限があることに注意してください:

candle.exe yourfile.wxs -ext %full path to WixUtilExtension.dll%' 
light.exe yourfile.wixobj -ext %full path to WixUtilExtension.dll% –out yourfile.msi yourfile.wixout' 

詳しい情報はで見つけることができます。そうしないと、コンパイラとリンカへの拡張が利用できるようにする必要がありあなたのアプリケーションを終了させないでください。それは丁寧にあなたのアプリにWM_CLOSEメッセージを送るだけで、あなたのトレイアプリケーションはシャットダウンしてそのメッセージを受信して​​処理します。

+0

カスタムアクションを使用し、 "-exit"のような引数を渡す方法はありません。これは、自分のプログラムがそれに反応して終了するためです。 Before = "InstallValidate"という文が間違っていると思いました。以前の状況でdeinstallルーチンを利用できますか? – inva

+0

申し訳ありませんが、あなたの説明は読んでいますが、あなたのコードは読んでいません。 http://wix.sourceforge.net/manual-wix3/util_xsd_closeapplication.htm –

+0

まだうまくいきません...トレイアイコンが見えなくなりますが、トレイアプリケーションのプロセスはまだ実行中です... :(私は間違っていますか?私は次のcloseapp文を使用しています: inva

関連する問題