連載
Enterprise Library概説

UpdaterABを使った高度な自動更新機能を実装する

―― 柔軟な自動更新機能を提供する「Updater Application Block 2.0」 ――

アバナード株式会社 市川 龍太(patterns & practices Champion
2006/01/11
Page1 Page2 Page3 Page4

 前回では、Exception Handling Application Blockを使った例外管理機能について解説した。

 今回は自動更新処理用のコンポーネントであるUpdater Application Block 2.0(以下UAB)について解説するわけだが、UABの概要については「.NETアプリケーション自動更新技術の比較」で、ほかの自動更新技術との比較を交えて解説しているため、本稿では主にUABの利用手順やUABならではの機能について解説していく。

UABの特徴

 .NET Framework 2.0からはClickOnceと呼ばれる自動更新技術が標準で用意されているため、Windowsアプリケーションの配布に関する問題が随分と緩和されることになる。しかもClickOnceはVisual Studio 2005に統合されているため、ウィザードを使った対話形式で簡単に設定を行えたりと導入も簡単で、機能も豊富にそろっており、一見すると.NET Framework 2.0時代における自動更新処理はClickOnceで必要十分のように思われている方も多いと思う。

 そんな中にあってあえてUABを使うメリットには何があるのだろうか? まさにこれこそが本稿で解説する主要テーマであるのだが、主なところでは以下の3つが挙げられるだろう(BITSやActivation Processについては後述する)。

  • BITSを使ったダウンロード機能
  • Activation Processの実行
  • 自由な拡張が可能

 本稿ではこれらUABならではの機能について順に解説していくわけだが、まずはUABの利用手順について解説していくとしよう。

ConfigurationコンソールでUABの構成を設定する

 UABをアプリケーションで利用するためには、「The Enterprise Library Configuration Console」(以下Configurationコンソール)でのUABの構成管理設定のほかに、「Updater Manifest Tool」(以下Manifestツール)を使ってUABで利用するマニフェスト・ファイル(更新処理についての振る舞いを定義するファイル)を設定する必要がある。

 そこでまずはConfigurationコンソールを使った構成管理設定について解説していくのだが、「Enterprise Libraryの基本ツールと導入手順」でも触れているように、UAB 2.0はEntLib 1.0リリース後の2005年3月に従来のUAB 1.0をEntLib対応にする形で別にリリースされたという経緯があるため、Enterprise Libraryとは別のフォルダ構成となっていることにご注意いただきたい。

 なおUAB 2.0は次のサイトからダウンロードしてインストールしてほしい。

●ConfigurationコンソールでのUABの追加

 今回は「アプリケーション」ノードに「Updater Application Block Configuration」ノードを追加する。

ConfigurationコンソールでのUABの追加
Configurationコンソールを起動するには、[スタート]メニューの[プログラム]−[Microsoft patterns & practices]−[Updater Application Block v2]−[Enterprise Library Configuration Tool]をクリックすればよい。ここでは事前に、新規のアプリケーションを追加しておく必要がある。これを行うには、ツールバーの[New Application]をクリックするか、メニューバーから[File]−[New Application]を選択すればよい。これにより「Application1」ノードがTreeViewコントロールのルートにある[Enterprise Library Configuration]ノードの直下に作成されるはずだ。
  UABを追加する。これを行うには、事前に新規追加しておいた「Application1」ノードの上で右クリックしてコンテキスト・メニューを表示し、そこから[New]−[Updater Application Block Configuration]を選択すればよい。これにより「Updater Application Block」ノードが「Application1」ノードの下に追加される。
  「Downloaders」を追加する。これを行うにはで追加した「Updater Application Block」ノードの上で右クリックしてコンテキスト・メニューを表示し、そこから[New]−[Downloaders]を選択すればよい。
  「BITSDownloader」を追加する。これを行うにはで追加した「Downloaders」ノードを右クリックしてコンテキスト・メニューを表示し、そこから[New]−[BITSDownloader]を選択すればよい。
  UABと依存関係にある「Configuration Application Block」のノードが自動的に追加される。追加された各ノードのプロパティを設定して、UABの振る舞いをカスタマイズする(詳細後述)。
  UABと依存関係にある「Cryptography Application Block」ノードが自動的に追加される。

●「Updater Application Block」配下の各ノードにおけるプロパティ設定

 以下の表は、上記の各ノードの各プロパティの設定例である。

プロパティ 設定値
Updater Application Block ApplicationId 12345
BasePath C:\ DestFolder
ManifestUri http://localhost/MyApp
/SampleManifest.xml
 Downloaders Name Downloaders
  BITSDownloader AuthenticationSchema BG_AUTH_SCHEME_NTLM
Password 任意のパスワード
TargetServerType BG_AUTH_TARGET_SERVER
UserName Administrator
UAB配下の各ノードのプロパティ設定例
表中の太字の個所がデフォルト設定から変更した設定値である。

 UABには、デフォルトでBITS(Background Intelligent Transfer Service:バックグラウンド・インテリジェント転送サービス)を利用するBITSDownloaderのみが提供されている(BITSの詳細については「バックグラウンド インテリジェント転送サービス (BITS) の概念」を参照)。UABはBITSの機能を利用することによって、非同期ダウンロードや、何らかのトラブルによってダウンロードが中断されてしまっても、再度接続したときにリジューム(再開)を行うことが可能になる。

 以上の設定により完成したUABの構成ファイルは、「App.config」(アプリケーション構成ファイル)としてアプリケーションの(Visual Studioの)プロジェクト・フォルダに保存する(メニューバーの[File]−[Save Application]を実行)。この際、同時に「UpdaterConfiguration.config」というUAB用の構成ファイルや「SecurityCryptographyConfiguration.config」というCryptography Application Block用の構成ファイルも生成される。構成ファイルを保存し終わったらConfigurationコンソールは終了してよい。

 なお本稿では、「UpdaterAB.exe」というWindowsアプリケーションを作成したので、そのプロジェクト・フォルダに保存したが、このプロジェクトをビルドするとアプリケーション構成ファイルは.EXEファイルが生成されるフォルダ内に「UpdaterAB.exe.config」として自動的に配置される。「UpdaterConfiguration.config」と「SecurityCryptographyConfiguration.config」は手動でこのフォルダに配置する必要がある。


 INDEX
  連載:Enterprise Library概説
  UpdaterABを使った高度な自動更新機能を実装する
  1.ConfigurationコンソールでUABの構成を設定する
    2.Manifestツールでマニフェスト・ファイルを設定する
    3.更新処理とActivation Processを実行する
    4.カスタムDownloaderを作成する
 
インデックス・ページヘ  「Enterprise Library概説」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH