連載
» 2006年11月08日 00時00分 公開

第6回 ClickOnceの運用を成功させる5つのポイント連載 ClickOnceの真実(3/4 ページ)

[一色政彦,デジタルアドバンテージ]

■実運用ポイント3:.NET Framework 2.0のインストール

 エンド・ユーザーにアプリケーションを配布し、そのアプリケーションを自動的に更新する方法としてClickOnceテクノロジを採用する際には、まずそのターゲットとなるクライアント環境についても注意を払っておく必要がある。

●ClickOnce(=.NET Framework 2.0)が利用できるクライアントOS

 ClickOnceアプリは.NET Framework 2.0が提供する機能だ。そのため、.NET Framework 2.0がサポートしていないOSでは利用できない。具体的にClickOnceが利用可能なOSは次のとおりだ。

  • Windows 98
  • Windows 98 Second Edition
  • Windows Me(Millennium Edition)
  • Windows 2000 Service Pack 4 *4
  • Windows XP Service Pack 2 *5
  • Windows Server 2003

 ここでの注意点は、.NET Framework 1.xのころはサポートされていたWindows NT 4.0が、サポート対象外となっていることである。

*4 Windows 2000に関しては、.NET Framework 2.0 SDK.NET Framework 2.0再配布可能パッケージ(x86)などの公式文書では「Service Pack 4」(SP4)が必要となっているが、実際に動かして調べたところ、現実的には「Service Pack 3」(SP3)以上であれば.NET Framework 2.0をインストール可能で、ClickOnceアプリが実行可能だった(ただしやはり、公式文書に従ってクライアント環境はSP4以上にすべきだろう)。


*5 Windows XPに関しても、.NET Framework 2.0 SDK.NET Framework 2.0再配布可能パッケージ(x86)などの公式文書では「Service Pack 2」(SP2)が必須となっているが、実際のところService Packが何も適用されていなくても、.NET Framework 2.0をインストールすることが可能であった(ただし、これに関しても公式文書に従うべきだろう)。


 .NET Framework 2.0(x86版の場合)を実行するための最低限のハードウェア要件の目安は次のとおりだ。

  • ハードディスクの空き領域:280Mbytes
  • CPU:600MHz以上(800MHz以上を推奨)
  • RAM(メモリ):125Mbytes(256Mbytes以上を推奨)
  • ディスプレイ解像度:800×600、256色(1024×768以上、High Color 16 bitカラー以上を推奨)

 そのほか、.NET Framework 2.0をインストールするための最低限の前提条件として、「5.01以降」のIEがあらかじめインストールされている必要があることにも注意されたい。ちなみにClickOnceアプリを<開発>可能なクライアントOSは、Windows NT系(2000/XP/2003など)となっており、Windows 9x系(98/Meなど)では開発がサポートされていない。

●クライアント環境への.NET Framework 2.0インストールの自動化

 ClickOnceアプリを実運用する際には、以上のクライアント環境の要件をクリアして、事前に.NET Framework 2.0をインストールしておく必要がある。

 ここで「ClickOnceテクノロジは.NET Framework 2.0のインストールも自動化してくれるのでは?!」と考えている読者諸氏も多いだろう。確かに、ClickOnceの大きなメリットの1つとして「クライアント環境への.NET Framework 2.0インストールの自動化」が挙げられるし、実際にある程度の自動化が実現されている。具体的には本連載第1回の「ClickOnceが提供する.NET Framework 2.0インストール用のWebページ」という画面で説明した機能がそれである。

 しかし、この「.NET Framework 2.0インストールの自動化」の機能は完ぺきではない。というのも、この機能が上述のクライアント要件をきちんと(前提として)考慮してくれないからだ。例えばSP4が適用されていないWindows 2000などでClickOnceをインストールしようとすると、次の画面のようなエラーが発生してしまう。

ClickOnce機能による.NET Framework 2.0のインストールの失敗例(1)
SP4が適用されていないWindows 2000のクライアント環境で、ClickOnce機能によって.NET Framework 2.0をインストールしようとして、エラーが発生してしまった場面。なお、この画面では「Windows 2000 Service Pack 3以降」と表記されているが、前述の注*4でも指摘したように、公式文書では「SP4以降」、実装内容は「SP3以降」となってしまっているようである。ちなみにWindows XPでは「SP2以降」(前述の注*5)が適用されていなくてもエラーにならず、.NET Framework 2.0をインストールできてしまう。

 また「5.01以降」のIEがインストールされていない環境で.NET Framework 2.0をインストールしようとした場合には次のようなエラーが出る。

ClickOnce機能による.NET Framework 2.0のインストールの失敗例(2)
「5.01以降」のIEがインストールされていないクライアント環境で、ClickOnce機能によって.NET Framework 2.0をインストールしようとして、エラーが発生してしまった場面。

 つまり、例えば、Windows 98の人がいたり2000の人がいたり、サービスパックが適用されていたりいなかったり、IEのバージョンがバラバラだったりというような、クライアント環境が不定な状況では(恐らく大半の会社の現状はそのようなものではないだろうか)、ClickOnce機能を使っても.NET Framework 2.0のインストールが完全に自動化できず、ClickOnceアプリの配布コストを低減できないという問題に直面するわけである。残念だが、この問題を解決するには、開発者が何らかの工夫を行って対応するしかないだろう。

●.NET Framework 2.0インストール問題の解決案

 これを解決するための対応方法はいくつかあるだろうが、最も好ましいと思われるのは、本連載「第5回 実行環境を確実に整える必須コンポーネントの開発」で説明した方法によって、クライアント環境のOSのバージョンをチェックして、サービスパックやIEをインストールする必須コンポーネントを作成することである。

 それよりももっと手軽に対応するには、「ClickOnceアプリ・インストール用のWebページ」(publish.htm)のJavaScript部分をカスタマイズするという手もある。ただし、JavaScriptで入手できるクライアント環境の情報には限界があるので、この対応には限界があるのも事実だ。本稿ではこの参考例として、サンプルのHTMLファイルを次のリンクに用意した。

 次の画面は、SP4が適用されていないWindows 2000で、このWebページを開いたところである。

改善した「ClickOnceアプリ・インストール用のWebページ」(publish.htm)の実行例
.NET Framework 2.0がインストールされておらず、クライアントOSがWindows 2000の場合、「Windows 2000 Service Pack 4以上」という前提条件の注意書きが表示される。また、.NET Framework 2.0がインストールされておらず、5.01より上位のバージョンのIEがインストールされていない場合に「Microsoft Internet Explorer 5.01以上」という注意書きが表示される。

  

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。