連載
» 2006年03月16日 00時00分 公開

連載 ClickOnceの真実:第3回 Visual Studio 2005でClickOnceを極めよう (1/2)

ClickOnceでサポートされている豊富なインストール方法/更新オプションの選択基準とは? ClickOnceを使いこなすためのポイントを詳解。

[一色政彦,デジタルアドバンテージ]
連載 ClickOnceの真実
Insider.NET

 

「連載 ClickOnceの真実」のインデックス

連載目次

 前回はClickOnceの動作原理について説明した。今回は、開発者がClickOnceでアプリケーションを実際に発行する手順(=一連のClickOnceアプリケーション生成作業)について解説する(なお前回の記事では、システム管理者がClickOnceを運用する手順まで解説する予定だとしたが、ページ数の関係で、その部分は次回以降に回した)。

 それではさっそくClickOnceアプリケーション(以降、ClickOnceアプリ)を発行する手順について説明していこう。

 なおClickOnceアプリは、Visual Studio 2005(以降、VS 2005)を使えば、IDEから直接発行できるので便利だ。そこで本稿では、Visual C# Express Editionを使うことにする。

【コラム】ClickOnceの発行に関する注意点

 ClickOnceアプリをIDEから直接発行できるのは、VS 2005(Express Editionも含む)の一部のプロジェクトのみである(例えば、C#/Visual Basic/J#言語などのWindowsアプリケーションやConsoleアプリケーションなどのプロジェクト)。これ以外の例えばVisual C++ 2005の(CLR)Windowsフォーム・アプリケーションのプロジェクトなどでは行えない。

 だがそれでも、Visual C++で作成したアプリケーションをClickOnceで発行したい場合には(もしくはVS 2005のIDEを使わずに発行したい場合には)、.NET Framework 2.0 SDK(=VS 2005をインストールすると「%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin」にデフォルトでインストールされる)に付属している外部ツールの「Mage.exe/MageUI.exe」(マニフェスト・ファイルを生成するコンソール・ツール/そのGUIツール)を使うと、簡単に手動によるClickOnceの発行が行える(マニフェスト・ファイルについては、前回の「ClickOnceで使われるマニフェスト・ファイル」を参照すること)。これらのツールの使い方やClickOnceの発行を手動で行う方法については、次のWebページが参考になるだろう。

 またClickOnceの発行は現在主流の32bitアプリケーションだけでなく、64bitアプリケーションにも利用できる(ただし本稿では32bitアプリケーションを前提とする)。詳しくは、MSDNの「64 ビット アプリケーションの配置」を参照していただきたい。


 ClickOnceアプリを発行する手順としてまずは、最も単純に発行作業が行える「発行ウィザード」という機能を説明しよう。なお、まだここでは配置や更新に関する細かなオプション設定は行わず、デフォルト設定のままの状態で発行を行うことにする(各種オプションの設定方法については後述する)。

ClickOnce発行ウィザード

 ClickOnce発行ウィザードは、次の画面のように、プロジェクト・プロパティの[発行]タブの[発行ウィザード]ボタンから起動できる。

[発行ウィザード]の起動
ClickOnceアプリを発行する最も手軽な方法は、[発行ウィザード]を使うことだ。
  (1)プロジェクト・プロパティを開く。これには、[ソリューション エクスプローラ]の「Properties」(C#やJ#の場合)もしくは「My Project」(Visual Basicの場合)をダブルクリックするか、メニュー・バーから[プロジェクト]−[<プロジェクト名> のプロパティ](本稿の例では[SampleApplication のプロパティ])を選択すればよい。
  (2)プロジェクト・プロパティの[発行]タブを開く。
  (3)プロジェクト・プロパティの発行ページの[発行ウィザード]ボタンをクリックする。これにより[発行ウィザード]が起動する。

 発行ウィザードの最初のページでは、ClickOnceアプリの発行場所(=厳密にいえば、配置場所への接続方法)を指定する。

●ClickOnceアプリの「発行場所」の指定

 具体的には、次に示す画面の手順で指定する。

[発行ウィザード]における発行場所の指定
ClickOnceでは発行を手軽に行うために、このようなウィザードが用意されている。この画面([アプリケーションをどこに発行しますか?]ページ)はClickOnce発行ウィザードの最初のページで、ClickOnceアプリの発行場所を指定するためのものだ。
  (1)発行する場所の具体的なパス。配布先を示すパスとしては、「<ドライブ名>:\……」もしくは「\\<サーバ名>\……」(例えば、「C:\SampleApplication\」といったディスク・パス、もしくは「\\dapc89\SampleApplication\」といったファイル共有パス)、「ftp://……」(=FTPサーバ)、「http://……」もしくは「https://……」(=Webサイト)などが指定できる(詳細後述)。なおFTPなどの具体的な設定を行うには、(2)の[参照]経由で指定する必要がある。
  (2)「発行するパス/URLを指定するための参照用ダイアログ」を表示する(詳細後述)。
  (3)[次へ]ボタンは、ウィザードを次のページを進めるためのものだ。ちなみに[前へ]ボタン(この画面は最初のページのためグレー色で表示されている)は、前のページに戻るためのものだ。どのウィザード・ページでもこのボタンの意味は同じため、以降はこの項目説明を省略する。
  (4)[完了]ボタンは、残りのウィザード・ページの設定はデフォルトのまま、ウィザードの処理を最後まで実行するためのものだ。デフォルトの設定は、(1)で指定したパスによって異なってくるので、注意が必要だ。基本的には、デフォルトの配置場所は「インターネット/イントラネットなどのWeb上」で、デフォルトのインストール・モードは「ローカル環境へインストールするモード(オンライン/オフライン・モード)」になる。しかしファイル共有パス(つまり「\\<サーバ名>\……」というパス)を(1)に指定した場合は、デフォルトの配置場所が「ネットワーク上でのファイル共有(UNCパス)」になる。また、ディスク・パス(つまり「<ドライブ名>:\……」というパス)を(1)に指定した場合は、デフォルトの配置場所が「CD-ROM/DVD-ROMなどのローカル環境上(ディレクトリ・パス)」になり、さらに(詳細なオプション指定である)更新オプションが「アプリケーションの更新を確認しない」に変更になる(=つまりネットワークからの自動的な更新が行えないClickOnceアプリとなる)。
  (5)[キャンセル]ボタンは、ウィザードの処理を中止して、すべての設定データを破棄するためのものだ。以降省略。

 このページの[参照]ボタンから、配置するフォルダへの細かなアクセス方法(=発行場所)が指定できる。次の画面は実際に[参照]ボタンから「発行するパス/URLを指定するための参照用ダイアログ」(具体的には[Web サイトを開く]ダイアログ)を表示したところだ。

発行するパス/URLを指定するための参照用ダイアログ([Web サイトを開く]ダイアログ)
発行場所となる具体的なパスは、このダイアログから選択することもできる。FTPサイトへアクセスするためのユーザー名やパスワードの指定もここで行える。
  (1)ファイル・システムを選択すると、((5)の欄から)「C:\」もしくは「\\」(=ローカル環境もしくはWindowsネットワーク接続経由でアクセスできる場所)を選択できる。
  (2)ローカルIISを選択すると、「http://……」もしくは「https://……」(=ローカルIISで管理しているWebサイト/SSL対応Webサイト上の場所)を指定できる。この画面にも表示されているように、[Secure Sockets Layer を使用して接続する]チェックボックスにチェックを入れることで、SSL(Secure Sockets Layer)に対応したローカルIISも利用できる。
  (3)FTPサイトを選択すると、「ftp://……」(=ftp経由でアクセス可能な場所)を指定できる。またそこでFTPサイトへの接続指定として、[サーバ]、[ポート]、[ディレクトリ]、[受動モード](いわゆる、Passiveモード)や[匿名ログイン]もしくは[ユーザー名]と[パスワード]などの情報を指定できる。
  (4)リモート・サイトを選択すると、「http://……」もしくは「https://……」(=外部サーバのIISで管理されているWebサイト/SSL対応Webサイト上の場所)を指定できる。ただしこれを利用するには、そのサーバにFrontPage Server Extensions(=リモートWebサイトを管理するための機能)が導入されている必要がある。なお、ここから(FrontPage Server Extensionsの機能により)新しいWebサイトを作成することもできる。またリモート・サイトでも、ローカルIISと同じように、[Secure Sockets Layer を使用して接続する]チェックボックスを指定することでSSL接続へ対応できる。
  (5)指定したい発行場所を選択する。
  (6)[開く]ボタンをクリックするとダイアログが閉じられ、ここで選択した値が[発行ウィザード]の発行場所の欄に自動入力される。
  (7)[キャンセル]ボタンをクリックすると、発行場所の選択を中止して、ダイアログを閉じられる。

 この「発行するパス/URLを指定するための参照用ダイアログ」を見ると、ClickOnceでは「発行場所」(=開発者やシステム管理者がClickOnceアプリを生成するために接続するパスやURL)を、次の4種類の接続先から選択して指定できることが分かる。

(1)ファイル・システム(ローカル・フォルダやファイル共有フォルダへの接続)
(2)ローカルIIS(ローカル環境上のhttpサイトへの接続)
(3)FTPサイト(FTPサイトへの接続)
(4)リモート・サイト(リモート・サーバ上のhttpサイトへの接続)

 これらの接続方法を使用することで、(前回でも説明した)次のような3種類の「配置場所」(=ユーザーがClickOnceアプリを利用するために接続するパスやURL。「インストールのURL」とも呼ばれる)に、ClickOnceアプリを配置できるわけである。

(A)インターネット/イントラネットなどのWeb上(http URL)
(B)ネットワーク上でのファイル共有(UNCパス)
(C)CD-ROM/DVD-ROMなどのローカル環境上(ディレクトリ・パス)

 実際にこれらの配置場所を次のウィザード・ページで指定する。

●ClickOnceアプリの「配置場所」(=インストールのパス/URL)の指定

 次の画面は、[発行ウィザード]で配置場所を指定しているところだ。なお、先ほどの「発行するパス/URLを指定するための参照用ダイアログ」で(2)ローカルIISや(4)リモート・サイトを選択した場合、配置場所として[Web サイトから](=上記の「(A)インターネット/イントラネットなどのWeb上(http URL)」)が自動的に選択されるため、常にこのページは省略される(その際、配置場所のURLは指定しないため、暗黙的に発行場所のURLと同じになる)。

[発行ウィザード]における配置場所(=インストールのパス/URL)の指定
この画面([ユーザーはアプリケーションをどのようにインストールするのですか?]ページ)はClickOnce発行ウィザードの2ページ目で、ClickOnceアプリの配置場所(=インストールのURL)を指定するためのものだ。なお最初のページの発行場所の指定で、ローカルIISやリモート・サイトを選択した場合は、このページは省略される。
  (1)ローカルやリモートにあるWebサイトからClickOnceアプリを配布する場合に選択する。[参照]ボタンをクリックすると表示される[Web サイトを開く]ダイアログから、URLを選択することもできる。[Web サイトを開く]ダイアログでは、「ローカルIIS」と「リモート・サイト」を選択できる。ただし、外部Webサーバが管理するリモート・サイトのURLを指定する場合、そのWebサーバのIISにFrontPage Server Extensionsが導入されていなければリモート・サイトからそのサイトを選択することはできないので、この場合は手動でテキスト入力しなければならない。
  (2)Windowsネットワーク内のファイル・サーバの共有フォルダからClickOnceアプリを配置する場合に指定する。[参照]ボタンをクリックすると表示される[Web サイトを開く]ダイアログから、UNCパスを選択することもできる。なおこれを選択すると、配置オプションの[発行後に毎回配置 Web ページを自動的に生成する]が自動的に無効化されて、「ClickOnceアプリ・インストール用のWebページ」(publish.htm)が生成されなくなるようだ(ただし発行場所と同じUNCパスを配置場所にも指定した場合、配置場所つまり「インストールのURL」が省略されるためなのか、逆にClickOnceアプリ・インストール用のWebページが生成されるようになる)。
  (3)CD-ROMやDVD-ROMなどのメディアからClickOnceアプリを配置する場合に指定する。CD-ROMなどメディアへのパスは、ユーザー環境によって異なるので、ここでは指定しなくてよい(指定できない)。なお(2)と同様に、これを選択すると、配置オプションの[発行後に毎回配置 Web ページを自動的に生成する]が自動的に無効化されるようだ。

 ここでは、ClickOnceアプリをインストールする形態を考慮しながら配置場所を選択する必要がある。基本的には(1)[Web サイトから]を選択すればよいだろうが、例えば、より高速にインストールできるようにするには(2)[UNC パスまたはファイル共有から]が好ましいかもしれない。しかしその場合、そのClickOnceアプリのユーザーのすべてがWindowsネットワークにアクセスできるかどうかなども同時に考慮しなければならないだろう。

 配置場所を選択するうえで基準となりそうなものを次の表にまとめたので、参考にしてほしい。

配置場所 選択基準
(1)[Web サイトから]
(A)インターネット/イントラネットなどのWeb上の場所(http URL)
→例:「http://dapc89/SampleApplication/」
高速なネットワーク/インターネット接続にアクセスできるユーザー環境の場合に最適。基本的に、ユーザーはWebページ上のリンクをクリックして、ClickOnceアプリを実行する配布スタイル。ClickOnceを広範に配布して、その利便性を最大限に活用するには、これを選択すればよい
(2)[UNC パスまたはファイル共有から]
(B)ネットワーク上でのファイル共有(UNCパス)
→例:「\\dapc89\SampleApplication\」
イントラネット内のWindowsネットワークにアクセスできるユーザー環境の場合に最適。ファイル・サーバ上の共有フォルダに置いたClickOnceアプリの配置マニフェスト(.applicationファイル)を直接ユーザーに実行してもらうか、Webページ上のリンクをクリックして実行してもらう配布スタイル。Webサーバを立ち上げなくてもClickOnceアプリを配布できるという利点もあるが、共有フォルダから直接実行させる場合、ユーザーに対する利用方法の説明がやはり(1)[Web サイトから]よりも複雑になってしまうだろう
(3)[CD-ROM または DVD-ROM から]
(C)CD-ROM/DVD-ROMなどのローカル環境上の場所(ディレクトリ・パス)
→例:「D:\」
ただし、CD-ROMドライブなどのパスはユーザー環境により異なるので、ここでは指定しなくてよい(指定できない)
ネットワークが利用できないユーザー環境の場合や、低速なネットワークにしか接続できないユーザー環境の場合に最適。CD-ROMなどのメディアからsetup.exeファイルをユーザーに直接実行してもらう配布スタイル(メディアをドライブに挿入した際にsetup.exeを自動起動させるようにすると便利。詳細後述)。ただしCD-ROMの場合、確かにインストール時にはネットワークに接続している必要はないが、ClickOnceの特長である更新の自動化を行うには、結局、ネットワークへの接続が必要となってしまうことに注意してほしい(ただしCD-ROMから上書きインストールするような対処は可能だろう)
配置場所の選択基準
配置場所を決めるうえで、その基準となりそうなものをまとめた。

 配置場所を指定したら、次のウィザード・ページではインストール・モードの選択を行う。なお、前回でも説明したが、インストール・モードには次の2種類がある。

(1)ローカル環境へインストールするモード(オンライン/オフライン・モード)
(2)ネットワーク上から起動するモード(オンライン・モード)

●ClickOnceアプリの「インストール・モード」の指定

 次の画面は、[発行ウィザード]でインストール・モードを指定しているところだ。

[発行ウィザード]におけるインストール・モードの指定
この画面([アプリケーションはオフラインでも利用できますか?]ページ)はClickOnce発行ウィザードの3ページ目で、ClickOnceアプリのインストール・モードを指定するためのものだ。なお2ページ目の配置場所(=インストールのパス/URL)の指定で、[CD-ROM または DVD-ROM から](C)を選択した場合はこのページはスキップされる。
  (1)ClickOnceアプリをオンラインでもオフラインでも実行可能にする。これを選択すると、[スタート]メニューにアプリケーションへのショートカットが作成される。また、コントロール・パネルの[プログラムの追加と削除]にアンインストールやロールバックを行うための項目が追加される。
  (2)ClickOnceアプリをオンラインでのみ実行可能にする。基本的にはWebページ上のリンクをクリックしてアプリケーションを起動させる。

 ここでは、ClickOnceアプリの利用形態を考えてインストール・モードを決定する必要があるが、ほとんどの場合では、(1)[はい、このアプリケーションはオフラインでも利用できます。]を選択すればよいだろう。その際の選択基準となりそうなものを次の表にまとめたので、参考にしてほしい。

インストール・モード 選択基準
(1)[はい、このアプリケーションはオンラインでもオフラインでも利用できます]
(1)ローカル環境へインストールするモード(オンライン/オフライン・モード)
オンラインだけでなくオフラインでも実行できるので、使用頻度の高い一般的なアプリケーションの場合に最適。基本的にはこれを選択すればよい
(2)[いいえ、このアプリケーションはオフラインでのみ利用できます]
(2)ネットワーク上から起動するモード(オンライン・モード)
常にオンラインでしか実行できないので、年に数回しか使わないような非常に使用頻度の低いアプリケーション(例えば、従業員向けの福利厚生施設を予約するアプリケーションなど)の場合に最適。ただし、配置場所が「(C)CD-ROM/DVD-ROMなどのローカル環境上の場所(ディレクトリ・パス)」の場合には選択できない
インストール・モードの選択基準
インストール・モードを決めるうえで、その基準となりそうなものをまとめた。

 なお、(この表中にも書いてあるように)配置場所として[CD-ROM または DVD-ROM から](C)を選択した場合、(ネットワークからオンラインではなく)ローカルのCD-ROMドライブなどからオフラインでインストール/実行することになるので、オフライン実行が不可欠である。このため、常に[はい、このアプリケーションはオフラインでも利用できます。]が自動選択されて、このページは省略される。

 また[CD-ROM または DVD-ROM から](C)からインストールするような場合、インストール先のユーザー環境がネットワークに接続できない可能性があるため、デフォルトでは[アプリケーションの更新を確認しない]設定となっている。ClickOnceでアプリケーションの更新を行うには、ネットワーク上のサーバに接続する必要があるため、次のウィザード・ページで更新場所(=ネットワーク上の場所)の指定を行わなければならない。

●ClickOnceアプリの「更新場所」の指定

 次の画面は、実際に[発行ウィザード]で更新場所を指定しているところだ。

[発行ウィザード]における更新場所の指定
この画面([アプリケーションの更新はどこで確認するのですか?]ページ)は、2ページ目の配置場所(=インストールのパス/URL)の指定で、配置場所として[CD-ROM または DVD-ROM から](C)を選択した場合にのみ表示されるClickOnce発行ウィザードの4ページ目で(この場合3ページ目の「インストール・モードの指定」はスキップされる)、ClickOnceアプリの更新場所(=アップデートのURL)を指定するためのものだ。
  (1)更新機能を利用するにはこれを選択する。更新場所としてネットワーク上のURLやUNCパスを指定できる。[参照]ボタンをクリックすると、「ローカル IIS」「リモート サイト」からURL(=ローカルやリモートのWebサイト)を、「ファイル システム」からUNCパス(=共有フォルダ)を選択できる。
  (2)[CD-ROM または DVD-ROM から](C)からClickOnceアプリをインストールする場合、デフォルトでは「アプリケーションの更新を確認しない」設定となる。これが設定されていると、アプリケーションの自動更新は行われなくなる。

 そして最後のウィザード・ページが「発行準備」の確認だ。

●ClickOnceアプリの「発行準備」の確認と完了

 次の画面はここまでに設定してきた発行準備の確認が表示されているところだ。

[発行ウィザード]における発行準備の確認
この画面([発行準備が完了しました]ページ)はClickOnce発行ウィザードの最終ページで、ClickOnceアプリの発行場所などの注意事項として表示される内容を確認して、実際にClickOnceアプリの発行を行うためのものだ。最後に[完了]ボタンを押せば、後は自動的に発行作業が行われる。

 内容を見て問題なければ、[完了]ボタンをクリックする。これにより、[出力]ウィンドウに次の画面のような内容が出力される。

ClickOnce発行作業の出力内容
この出力内容を見ると分かるように、ClickOnceの発行では、ビルド後に発行場所に接続して、実際に発行作業を行う。その後、発行されたファイルに配置場所(=インストールのURL)からアクセス可能かを確認し(詳細は後で述べるが、この作業はオプションによって省略できる)、最後に「ClickOnceアプリ・インストール用のWebページ」(publish.html)を生成してそれをInternet Explorer(Webブラウザ)で表示する。

 以上で[発行ウィザード]によるClickOnceの発行は完了だ。だがClickOnce発行ウィザードは代表的な発行オプションが自動的に設定されるようになっているので、細かいオプションを指定して発行したい場合には使えない。

 そこで次に、発行ウィザードを使わずに詳細な各種オプションを設定して発行を行う方法について説明していこう。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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