VSUG スマートクライアント ボードリーダー 尾崎 義尚
■はじめに
先日、 Visual Studio 2005 がリリースされました。 .NET Framework のはじめてのメジャーバージョンアップということで、多くの機能が追加されました。 それぞれ便利な機能なのですが、モバイル・スマートクライアント フォーラムに関連する機能の中で、私がもっとも注目しているのが、 ClickOnce です。
ここでは、 ClickOnce によって展開されるファイルとファイルの内容について解説していきます。
■ClickOnceとは
.NET Framework 1.1 では、ノータッチ デプロイメントと呼ばれる Windows アプリケーションの配布方法が用意されていました。 これは、 Web サーバー上に実行ファイルを配置して、クライアントの Internet Explorer からアクセスするだけで Windows アプリケーションの実行を可能にするという、Webアプリケーションの配布容易性と、 Windows アプリケーションのリッチで容易な操作性を併せ持ったテクノロジで、これによってスマートクライアントの普及が加速することが期待されました。
しかし、ノータッチデプロイメントは、ゾーンによって厳しいセキュリティの制約がかかっていたため、たとえ社内アプリケーションだとしてもイントラネットゾーンで実行され、たとえばデータベースへの直接接続も許可されず、 Web サービス経由で接続することが必要でした。 セキュリティ設定によって、この制約を回避することも可能でしたが、この設定は高度な知識を必要とするため、実際に使われる機会はあまりありませんでした。
ClickOnce では、ノータッチ デプロイメントの欠点をふまえて、新しい配布方法として生まれ変わりました。 また Visual Studio 2005 に統合され、ウィザード形式で簡単に配布を行うことができます。 そのため、どのようなファイルが展開され処理されているのか知らない人も多いと思います。
本稿では、 ClickOnce でなにができるかではなく、どのようなファイルが展開され処理されるのかを見ていきたいと思います。
■発行をしてみる
では、簡単な Windows アプリケーションを作成して、実際に ClickOnce の発行をしてみましょう。 このアプリケーションは、ボタンをクリックするとメッセージボックスが表示されるだけのアプリケーションです。 コードはつまらないので載せません(^^; ビルドが完了したら、以下の手順でアプリケーションを発行してみます。
1.ソリューション エクスプローラで、プロジェクトを右クリックして、[発行]をクリック (他にも、プロジェクトのプロパティから発行することもできます。)
2. 発行先を指定します。ここでは、localhostのvsug1という仮想ディレクトリを指定しています。
3.ここから先はデフォルトの設定で発行を行います。
4. publish.htm という Web ページが表示されて、[インストール]をクリックすると、[アプリケーションのインストール]ダイアログが表示され、[インストール]をクリックするとアプリケーションが実行されます。
このとき、[インストール]のリンク先を確認すると、 vsug1.application というファイルにリンクされていることがわかります。
.NET Framework 2.0 がインストールされていない環境では、以下のように、「必須コンポーネントがインストールされていない」というメッセージが表示されて[インストール]のリンク先が、setup.exe になっていることがわかります。 .NET Framework 2.0 がインストールされていない場合、setup.exe で自動的にインストールすることができるようになっています。
■発行されたファイルを確認
このように、 Visual Studio 2005 を使用と、簡単に ClickOnce によるアプリケーション配布を行うことができます。 ではこの時、どのようなファイルが展開されているのでしょうか?発行されたファイルを確認してみましょう。
先ほど、発行先に [http://localhost/vsug1/] という仮想ディレクトリを指定しました。 この時、私の環境では、IIS のデフォルト仮想ディレクトリである [C:\Inetpub\wwwroot\vsug1] にファイルが展開されています。 では、このフォルダを開いて見ましょう。
先ほど開いたページである、publish.htm と、[インストール]のリンク先であった setup.exe、vsug1.application というファイルが作成されているのがわかります。
また、vsug1_1_0_0_0 というフォルダが作成されています。 このフォルダを開くと、vsug1.exe.deploy と vsug1.exe.manifest というファイルが作成されていることがわかります。
vsug1.exe.deploy というファイルは、先ほど作成した実行ファイルです。 .deployという拡張子を削除して、「vsug1.exe」 というファイル名に変更すると、先ほど作成したアプリケーションが実行できることが確認できます。 これは、exeファイルのダウンロードを許可していない Web サーバーや Proxy サーバーなどに配置したときに、配布の妨げにならないようにファイルの拡張子が変更されています。 (逆に MIME-TYPE を追加しないと動かなかったりしたりもするんですが・・・)
■mage.exe
仮想ディレクトリに展開されるファイルを確認してきましたが、vsug1.manifest と vsug1.application は謎のままだと思います。 では、この2つのファイルについて解説して行きましょう。
これらのファイルは、それぞれアプリケーション マニフェストとデプロイメント マニフェストと呼ばれています。 若干ややこしいのですが、.application という拡張子がついている方が、デプロイメント マニフェストで、.manifest という拡張子の方が、アプリケーションマニフェストになります。
この2つのファイルをメモ帳などで開いてみると、中身は XMLファイルであることがわかります。 ただしこのままでは、がんばって理解しようとしなくてはなにが書かれているのかよくわかりません。 そこで役立つのが mage.exe (mageUI.exe) です。
このツールは、.NET Framework 2.0 SDK に含まれていて、Visual Studio 2005がインストールされている環境であれば、「%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin」 に存在しています。 ファイル名は、お侍さんとは関係なく、MAnifest Generation and Editiong Tool の略で mage.exe という名前になっています。
基本的には、コマンドライン ツールなのですが、パラメータを指定しないで起動すると、mageUI.exe という GUIツールが起動します。
では、このツールでそれぞれのファイルを開いてみましょう。
■デプロイメント マニフェスト(.application) アプリケーションの配布に関する設定が書かれているファイルが、デプロイメント マニフェストになります。 実際にどのような設定が可能なのかを見ていきましょう。
メニューバーの [File]-[Open] で 「ファイルを開く」 ダイアログが表示されるので、先ほど作成された vsug1.application を開いてみます。
最初に表示されるのが、上の図のようなウィンドウです。 左のリストで編集したい項目を選択して、右側のパネルで編集を行います。
では、それぞれのパネルでどのような設定が可能なのかを見ていきましょう。
Name パネル
ここでは、アプリケーション名、バージョン、対象プロセッサや、カルチャを入力します。
参照しているアプリケーションのバージョンが上がった場合、ここのバージョンを変更することになります。
Description パネル
ここでは、発行者名や製品名を入力します。 クライアントにインストールされる場合に、スタート メニューに追加されるフォルダ名になります。
Support Location には、必要に応じて、Help の URL などを入力します。
Deployment Options パネル
ここでは、アプリケーションのインストール形態(ローカルにインストールされるか、ネットワーク経由で実行するか)や、更新情報などを確認するために使用するURLを指定します。
Update Option パネル
ここでは、アプリケーションの更新チェックの頻度を設定します。
Application Reference パネル
ここでは、配布に使用するアプリケーションマニフェストを指定します。 初回や、参照先を変更する場合は、[Select Manifest] ボタンをクリックして、「ファイルを開く」ダイアログで選択することができます。
たとえば、配布するアプリケーションをより新しいバージョンに切り替える場合は、ここを変更します。
■アプリケーション マニフェスト(.manifest)
前の章で解説したとおり、デプロイメント マニフェストから参照されているのが、アプリケーション マニフェストになります。 このファイルには、アプリケーションに関する設定情報が書かれています。 こちらも同じように、mage.exe で内容を確認してみましょう。
先ほどと同じように、メニューバーの [File]-[Open] で「ファイルを開く」ダイアログが表示されるので、vsug1.exe.manifest を開いてみます。
編集方法は、デプロイメント マニフェストと同様です。 では、先ほどと同じようにパネルごとの設定項目を確認していきましょう。
Name パネル
ここでは、デプロイメント マニフェストと同様に、アプリケーション名、バージョン、対象プロセッサ、カルチャを設定します。
Files パネル
ここでは、アプリケーションの実行に必要なファイルを設定します。 今回は、実行ファイルのみのシンプルな構成になっていますが、アプリケーションによっては、構成ファイル (app.config) や、アセンブリ (.dll) などが必要になります。
アプリケーションを構成するファイルを追加するには、「Application directory」 を入力して、[Populate] ボタンをクリックします。 不要なファイルが追加された場合は、[Delete] キーで削除することができます。 File Type に Entry Point と設定されているものが、実際に起動されるアプリケーションになります。
Permission Required パネル
ここでは、アプリケーションの実行に必要な Permission Set (アクセス許可セット)を指定します。 必要に応じて、アクセス許可を設定します。FullTrust に設定すると、すべてのアクセス許可が与えられます。
■まとめ
以上のように、ClickOnce では、配布に関する設定が書かれたデプロイメントマニフェスト (.application) と、そこから参照される、アプリケーションの構成や必要なアクセス許可が書かれたアプリケーションマニフェスト (.manifest) という2つのマニフェスト ファイルによって、配布に関連する情報が設定されています。
Visual Studio 2005 がなかったとしても、.NET Framework 2.0 SDK に含まれる、mage.exe を使用することによって、作成されたアプリケーションの ClickOnce 配布が可能になります。 |