2

msi をインストールする Wix 書き込みブートストラップを作成しようとしています。ブートストラップ exe は正常に動作していますが、唯一の問題は、途中でインストールをキャンセルしようとすると、msi に追加されたカスタム アクションが停止しないことです。キャンセルボタンをクリックしているときに、インストールを停止してロールバックする方法を誰か教えてください。前もって感謝します。

4

1 に答える 1

4

カスタム アクションは、::MsiProcessMessage()呼び出しを送信して、キャンセルを受け取り、その API からのリターン コードを処理できるようにする必要があります (通常はERROR_INSTALL_USEREXITまたはIDCANCEL)。次に、カスタム アクションを終了する必要があります。

WiX 標準のカスタム アクションのいくつかを見ると、多くの呼び出しWcaProcessMessage()などが見られます。それらからの戻りコードを保存し、WcaFinalize() は終了時に正しいものを返します。サンプルコードを確認してくださいsrc\ca\wcautil\wcautil.cppsrc\ca\wcautil\wcawrap.cpp

于 2013-03-02T21:40:56.627 に答える