3

カスタム マネージド ブートストラップ アプリケーションを使用すると、キャンセル ボタンをクリックしたときにセットアップの進行を停止できません。はい/いいえのオプションを含む確認ビューを表示します。キャンセルが確認されると、セットアップは正常にロールバックされます。または、拒否された場合は続行します。これは以下に従って行われました: Wix Burn Bootstrapper UI を使用してインストールとロールバックをキャンセルする

同じ問題が WiX セットアップ キット自体にも発生していることに気付きました。キャンセルをクリックして待機すると、ユーザーがキャンセルを確認または拒否するのを待つ代わりに、セットアップが続行されます。

それで、私の質問は、確認ビューでキャンセルコマンドが確認される (または拒否される) まで、進行を一時停止するにはどうすればよいですか?

更新:次のメカニズムでこれを実行しようとしています: という新しいプロパティを追加しますCancelWaiting。が true の場合CancelWaiting、ProgressViewModel で、<PropertyChangedEventArgs>.Resultが に設定されるようにロジックを変更しResult.Suspendます。ここでの課題は、複数のコマンド バインディングを行うことです。もう 1 つの方法は、Cancel パスと CancelWaiting パスを 1 つに結合することです。とにかく、これがうまくいき次第、このスレッドを更新します。誰かが他のアイデアを持っている場合は、投稿してください。

4

2 に答える 2

3

戻るResult.Suspendと、Burn エンジンはできるだけ早くインストールを停止し、再度実行するためにバンドルを登録したままにするように指示されます。それはおそらくあなたがやりたいことではありません。

進行状況が継続しないようにする場合は、進行状況のコールバック メソッドを待機させ、戻らないようにする必要があります。プログレス コールバック メソッドからメッセージ ボックスを表示するか、プログレス コールバックをイベントで待機させ、ユーザーが UI スレッドで選択を行った後にイベントを通知することで、これを行うことができます。

于 2013-04-27T04:39:40.663 に答える