LOGO

sponsor.jpg

   ホーム      
 | 
  
   イベント      
 | 
  
   コラム      
 | 
  
   連載      
 | 
  
   フォーラム      
 | 
  
   VSUG      
 | 
  
   スタッフ日記      
 | 
  
   VSUG キャスト   
会員サービス
メンバー ログイン
新規会員登録はこちら
MENU
ホーム
イベント
VSUG アカデミー
VSUG Day
その他のイベント
コラム
連載
基本
LINQ
リッチクライアント
ASP.NET
フォーラム
初心者フォーラム
Visual Studio
.NET 開発
プラットフォーム運用
フリートーク・お知らせ
フォーラムの利用案内
VSUG
VSUGとは
フォーラムリーダー紹介
ガジェット
スタッフ日記
VSUG キャスト
第 1 回 近藤 和彦 氏
第 2 回 長沢 智治 氏
インフォメーション
会員規約
会員登録
プライバシーポリシー
リンクポリシー
著作権について
スポンサーについて
お問い合わせ
メールニュース連動コラム - ClickOnceのファイル構成を理解する
VSUG スマートクライアント ボードリーダー 尾崎 義尚

ClickOnceのファイル構成を理解する単一ページで表示

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.ソリューション エクスプローラで、プロジェクトを右クリックして、[発行]をクリック
(他にも、プロジェクトのプロパティから発行することもできます。)

ClickOnce1.PNG

2. 発行先を指定します。ここでは、localhostのvsug1という仮想ディレクトリを指定しています。

ClickOnce2_s.PNG

3.ここから先はデフォルトの設定で発行を行います。

4. publish.htm という Web ページが表示されて、[インストール]をクリックすると、[アプリケーションのインストール]ダイアログが表示され、[インストール]をクリックするとアプリケーションが実行されます。

ClickOnce3_s.PNG

このとき、[インストール]のリンク先を確認すると、 vsug1.application というファイルにリンクされていることがわかります。

.NET Framework 2.0 がインストールされていない環境では、以下のように、「必須コンポーネントがインストールされていない」というメッセージが表示されて[インストール]のリンク先が、setup.exe になっていることがわかります。
.NET Framework 2.0 がインストールされていない場合、setup.exe で自動的にインストールすることができるようになっています。

ClickOnce6_s.PNG

■発行されたファイルを確認

このように、 Visual Studio 2005 を使用と、簡単に ClickOnce によるアプリケーション配布を行うことができます。
ではこの時、どのようなファイルが展開されているのでしょうか?発行されたファイルを確認してみましょう。

先ほど、発行先に [http://localhost/vsug1/] という仮想ディレクトリを指定しました。
この時、私の環境では、IIS のデフォルト仮想ディレクトリである [C:\Inetpub\wwwroot\vsug1] にファイルが展開されています。
では、このフォルダを開いて見ましょう。

ClickOnce4_s.PNG

先ほど開いたページである、publish.htm と、[インストール]のリンク先であった setup.exe、vsug1.application というファイルが作成されているのがわかります。

また、vsug1_1_0_0_0 というフォルダが作成されています。
このフォルダを開くと、vsug1.exe.deploy と vsug1.exe.manifest というファイルが作成されていることがわかります。

ClickOnce5_s.PNG

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ツールが起動します。

mage1_s.PNG

では、このツールでそれぞれのファイルを開いてみましょう。

■デプロイメント マニフェスト(.application)
アプリケーションの配布に関する設定が書かれているファイルが、デプロイメント マニフェストになります。
実際にどのような設定が可能なのかを見ていきましょう。

メニューバーの [File]-[Open] で 「ファイルを開く」 ダイアログが表示されるので、先ほど作成された vsug1.application を開いてみます。

dotApp1_s.PNG

最初に表示されるのが、上の図のようなウィンドウです。
左のリストで編集したい項目を選択して、右側のパネルで編集を行います。

では、それぞれのパネルでどのような設定が可能なのかを見ていきましょう。

Name パネル

ここでは、アプリケーション名、バージョン、対象プロセッサや、カルチャを入力します。

参照しているアプリケーションのバージョンが上がった場合、ここのバージョンを変更することになります。

Description パネル

dotApp2_s.PNG
ここでは、発行者名や製品名を入力します。
クライアントにインストールされる場合に、スタート メニューに追加されるフォルダ名になります。

Support Location には、必要に応じて、Help の URL などを入力します。

Deployment Options パネル

dotApp3_s.PNG

ここでは、アプリケーションのインストール形態(ローカルにインストールされるか、ネットワーク経由で実行するか)や、更新情報などを確認するために使用するURLを指定します。

Update Option パネル

dotApp4_s.PNG

ここでは、アプリケーションの更新チェックの頻度を設定します。

Application Reference パネル

dotApp5_s.PNG

ここでは、配布に使用するアプリケーションマニフェストを指定します。
初回や、参照先を変更する場合は、[Select Manifest] ボタンをクリックして、「ファイルを開く」ダイアログで選択することができます。

たとえば、配布するアプリケーションをより新しいバージョンに切り替える場合は、ここを変更します。

■アプリケーション マニフェスト(.manifest)

前の章で解説したとおり、デプロイメント マニフェストから参照されているのが、アプリケーション マニフェストになります。
このファイルには、アプリケーションに関する設定情報が書かれています。
こちらも同じように、mage.exe で内容を確認してみましょう。

先ほどと同じように、メニューバーの [File]-[Open] で「ファイルを開く」ダイアログが表示されるので、vsug1.exe.manifest を開いてみます。

dotMan1_s.PNG

編集方法は、デプロイメント マニフェストと同様です。
では、先ほどと同じようにパネルごとの設定項目を確認していきましょう。

Name パネル

ここでは、デプロイメント マニフェストと同様に、アプリケーション名、バージョン、対象プロセッサ、カルチャを設定します。

Files パネル

dotMan2_s.PNG
ここでは、アプリケーションの実行に必要なファイルを設定します。
今回は、実行ファイルのみのシンプルな構成になっていますが、アプリケーションによっては、構成ファイル (app.config) や、アセンブリ (.dll) などが必要になります。

アプリケーションを構成するファイルを追加するには、「Application directory」 を入力して、[Populate] ボタンをクリックします。
不要なファイルが追加された場合は、[Delete] キーで削除することができます。
File Type に Entry Point と設定されているものが、実際に起動されるアプリケーションになります。

Permission Required パネル
dotMan3_s.PNG

ここでは、アプリケーションの実行に必要な Permission Set (アクセス許可セット)を指定します。
必要に応じて、アクセス許可を設定します。FullTrust に設定すると、すべてのアクセス許可が与えられます。

■まとめ

以上のように、ClickOnce では、配布に関する設定が書かれたデプロイメントマニフェスト (.application) と、そこから参照される、アプリケーションの構成や必要なアクセス許可が書かれたアプリケーションマニフェスト (.manifest) という2つのマニフェスト ファイルによって、配布に関連する情報が設定されています。

Visual Studio 2005 がなかったとしても、.NET Framework 2.0 SDK に含まれる、mage.exe を使用することによって、作成されたアプリケーションの ClickOnce 配布が可能になります。

ClickOnceのファイル構成を理解する | 1 / 1 ページ | ClickOnceのファイル構成を理解する
ログイン | © 2005-2008 Visual Studio User Group. All rights reserved. 著作権について | プライバシーポリシー | リンクポリシー | お問合せ