2013-10-08 43 views
0

我正在使用WiX Source \ Setup \ WixBA作爲自定義託管引導程序應用程序的起點。託管引導程序應用程序更新DetectUpdateBegin

我想圍繞UpdateCommand如何工作,但我甚至沒有看到DetectUpdateBegin方法被解僱。

我看到DetectComplete方法被解僱,但只是直接設置this.State = UpdateState.Current而不檢查更新。

我錯過了什麼?

最終,我試圖讓Bootstrapper查詢遠程服務器並下載其自身的更新版本,而不必將更新後的bootstrapper.exe再次分發給客戶端。

=====UpdateViewModel===== 

public UpdateViewModel(RootViewModel root) 
{ 
    this.root = root; 
    CustomBA.Model.Bootstrapper.DetectUpdateBegin += DetectUpdateBegin; 
    CustomBA.Model.Bootstrapper.DetectComplete += DetectComplete; 

    this.State = UpdateState.Initializing; 

    this.worker = new BackgroundWorker(); 
    this.worker.DoWork += new DoWorkEventHandler(worker_DoWork); 
} 

private void DetectUpdateBegin(object sender, Microsoft.Tools.WindowsInstallerXml.Bootstrapper.DetectUpdateBeginEventArgs e) 
{ 
    CustomBA.Model.LogMessage("[DEBUG-Update] DetectUpdateBegin: " + e.UpdateLocation); 
    this.State = UpdateState.Checking; 
    this.worker.RunWorkerAsync(e.UpdateLocation); 
} 

private void DetectComplete(object sender, Microsoft.Tools.WindowsInstallerXml.Bootstrapper.DetectCompleteEventArgs e) 
{ 
    CustomBA.Model.LogMessage("[DEBUG-Update] DetectComplete: "); 
    // If we never started checking, assume we're up to date. 
    if (UpdateState.Initializing == this.State) 
    { 
     this.State = UpdateState.Current; 
    } 
} 

========================= 

回答

0

DetectUpdateBegin方法不解僱,除非你有你的Bundle.wxs定義的Update標籤。

添加以下解決了這個問題:

<Update Location="http://myserver/MyApp/updatefeed.xml"/>

相關問題