2012-03-13 23 views
2

Clickonceインストールされたアプリケーションをダブルクリックすると、「システム要件の確認」という「クリック画面」が表示されるという事実が知られています。サーバーに更新されたバージョンがある場合、Clickonceはローカルにインストールされているバージョンを更新し、アプリケーションを起動します。このプロセス全体をカスタマイズする方法はありますか?つまり、インストール/アップグレーディングの部分で何かしたいというわけではありません。私はこの全体のGUIを変更したいだけです。 「アプリケーションを起動しています....」と表示されている画面のように、不明瞭なプログレスバーが表示されても問題ありません。この画面は、すべてのclickonceポップアップの代わりに表示され、clickonceは実際のものをバックグラウンドで実行できます。 種類のスプラッシュ画面は、私が意図したものですが、Clickonce画面のGUIをオーバーライドします... 任意の提案???clickonceのダウンロード画面をカスタマイズする

答えて

0

ApplicationDeploymentクラスを使用して、プログラムを更新する可能性があります。しかし、この場合、問題に応じてシンプルまたは洗練された更新ロジックを実装する必要があります。

更新プログラムをチャックしてダウンロードする場合、[公開]ウィンドウで更新オプションをオフにすることができます。つまり、アプリケーションはClickOnceによって更新されず、作成するすべての更新ロジックが実行されます。コードでは、スプラッシュ画面を追加して同期的に更新したり、「ダイナミクス」を追加したりして、CheckForDetailedUpdateメソッドが提供するデータを使用して更新の進行状況をユーザーに知らせることができます。

リトルサンプル:

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 

     bool isUpdated = tryUpdateApplication(); 

     if (isUpdated) 
     { 
      Application.Restart(); 
     } 
     else 
     { 
      Application.Run(new MainForm()); 
     } 
    } 

    static bool tryUpdateApplication() 
    { 
     bool result = false; 

     try 
     { 
      UpdateCheckInfo info = ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate(); 

      if (info.UpdateAvailable) 
      { 
       //Show what you want to show 
       ApplicationDeployment.CurrentDeployment.Update(); 
       //Hide what you showed 
       result = true; 
      } 
     } 
     catch (Exception ex) //better to catch the specific exceptions 
     { 
      //some exception handling logic 
     } 

     return result; 
    } 
関連する問題