2012-02-04 26 views
0

MSIパッケージをBurnの.NET 4.0フレームワークインストーラにバンドルします。私はユーザーインターフェースのBurnが好きではないので、自分のカスタムBootstrapperアプリケーションを作成しました。 .NETフレームワークがまだインストールされていない場合は、正しくインストールされます。しかし、私はMSIパッケージをインストールする方法を見つけることができません。これは私のカスタムBAのためのコードです、私はそれが実行されることを確認しました。カスタムBurn BootstrapperアプリケーションでMSIパッケージを実行するアプリケーション

public class ShopProtectBA : BootstrapperApplication 
{ 
    protected override void Run() 
    { 

     //Here i would like to run the bundled MSI package. 
     Engine.Quit(0); 
    } 
} 

これに関するドキュメントはまばらです。 Run()でパッケージをインストールしないといいですか?このティンはどのように機能するのですか?

編集:私はそれがカスタムマネージドブートストラップアプリケーションであることを忘れていました。何か違いがあれば。

  var pl = new PlanMsiFeatureEventArgs("MyMsiPackage", "Complete", FeatureState.Local); 
     Engine.Detect(); 
     OnPlanMsiFeature(pl); 

     Engine.Plan(LaunchAction.Install); 

     Engine.Elevate(FindWindow(null, "Setup")); 
     Engine.Apply(FindWindow(null, "Setup")); 

しかし、それだけでインストールが準備されていることを私に言ってウィンドウに結果:

私が思い付くことができる最高のはこれです。それから私は閉じて、もう何も起こらない。

答えて

0

これ以上のことがあります:マシンの状態を検出し、パッケージのアクションを計画し、適用するようにエンジンに依頼する必要があります。 WiX BA自身のソースコードsrc = Setup \ WixBAを見てください。

+0

src \ Setup \ WixBAはありませんが、src \ Setup \ UX \ WixUXがあります。 Run()メソッドには以下が含まれています。 'WixUX.Model = new Model(this); RootViewModel viewModel = new RootViewModel(); WixUX.View =新しいルートビュー(viewModel); //ビューモデルにデータを取り込み、ビューを実行します。 viewModel.Refresh(); WixUX.View.Run(); this.Engine.Quit(0); ' これがどのようにマシンの状態を検出し、アクションを計画し、適用するかはわかりません。私は少し遅いかもしれません。あなたは少し精緻化できますか?または、少なくとも正しい方向を指します。 – Andreas

+0

WixBAは最新の週刊リリースの名前です。最新の情報源を入手するためにダウンロードすることをお勧めします。ビューモデル(主にInstallationViewModel)への流れに従わなければなりません。カスタムBAsは難しいものではありませんが、それほど簡単なものではありません。 –

+0

私はほとんどそこに近い、しかし葉巻のように感じる。私は持っているコードで私の質問を更新しました。インテリセンスよりも何も説明がありませんか? – Andreas

関連する問題