3

Wix 3.7 を使用しています。msi をインストールする wix Burn Bootstrapper を作成しようとしています。BA UI にインストールとキャンセル用の 2 つのボタンを追加しました。BA の UI デザインに C# を使用しています。

インストールを起動するために、[インストール] ボタンに次のコードを追加しました。

  MySampleBA.Model.Engine.Detect();
  MySampleBA.hwnd = IntPtr.Zero;          
  MySampleBA.Model.Bootstrapper.PlanBegin += this.PlanBegin;
  MySampleBA.Model.Bootstrapper.DetectPackageComplete += this.DetectedPackage;
  MySampleBA.Model.Bootstrapper.DetectComplete += this.DetectComplete;
  MySampleBA.Model.Bootstrapper.PlanPackageBegin += this.PlanPackageBegin;
  MySampleBA.Model.Bootstrapper.PlanComplete += this.PlanComplete;
  MySampleBA.Model.Bootstrapper.ExecuteMsiMessage += this.ExecuteMsiMessage;
  MySampleBA.Model.Bootstrapper.ExecuteProgress += this.ApplyExecuteProgress;
  MySampleBA.Model.Bootstrapper.PlanMsiFeature += this.PlanMsiFeature;
  MySampleBA.Model.Bootstrapper.PlanPackageComplete += this.PlanPackageComplete;
  MySampleBA.Model.Bootstrapper.Progress += this.ApplyProgress;
  MySampleBA.Model.Bootstrapper.CacheAcquireProgress += this.CacheAcquireProgress;
  MySampleBA.Model.Bootstrapper.CacheComplete += this.CacheComplete;
  MySampleBA.Model.Bootstrapper.Error += this.ExecuteError;
  MySampleBA.Model.Bootstrapper.ExecutePackageComplete += this.ExecuteComplte;

を使用してインストールを起動します

  MySampleBA.Model.Engine.Plan(LaunchAction.Install);
  MySampleBA.Model.Engine.Apply(MySampleBA.hwnd);

インストールは正常に機能しています。しかし、途中でインストールをキャンセルすると問題が発生します。

ブートストラップ アプリケーションのロールバックリンクを見ました。しかし、IDCANCEL と、ボタンのクリックからエラー イベントをトリガーする方法についてのアイデアを得ることができません。

BA UI にあるキャンセル ボタンをクリックしてインストールを停止する方法を詳しく教えてください。

4

1 に答える 1

8

コールバックの多く ( など) は、ブートストラップ アプリケーションにProgress引数 ( など) を提供します。ProgressEventArgsargs オブジェクトには、Resultプロパティが表示される場合があります。キャンセルするには、Resultプロパティをに設定しますResult.Cancel。コールバックがエンジンに戻るとBurn、結果をキャンセルしてロールバック プロセスを開始するように設定したことがわかります (または、そのコンテキストでキャンセルが意味することを実行します)。

于 2013-03-10T17:13:00.720 に答える