【2/17】今年は「濃厚」技術トーク!@ITメールセミナー スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
 

.NET TIPS

.MSIセットアップで必須コンポーネントを利用するには?[VS 2005のみ]

デジタルアドバンテージ 一色 政彦
2006/09/08


ClickOnceの真実 第3回 Visual Studio 2005でClickOnceを極めよう

 .NET Framework 2.0で新たに追加された「ClickOnce」というソフトウェア展開テクノロジでは、配布するアプリケーションを実行するうえで必要となるコンポーネント(例えば、実行エンジンとなる.NET Framework 2.0ランタイムや、データベースのSQL Server 2005 Express Editionなど)を事前にインストールする「必須コンポーネント」という仕組みを持っている(「ブートストラッパ」とも呼ばれる。詳しくは右の関連記事を参照されたい)。

 実は、この必須コンポーネントという機能は、ClickOnceだけでなく.MSIセットアップ(=Windowsインストーラ配置)でも利用できる。つまり、.MSIセットアップをアプリケーションのインストーラとして作成する場合にも、そのアプリケーションを実行するための要件となるコンポーネントを必須コンポーネントとして(.MSIセットアップよりも)事前にインストールすることが可能なのだ。

Windowsインストーラ配置における必須コンポーネントの実行例

 次の画面は実際に.MSIセットアップ(のsetup.exe)から必須コンポーネントのインストーラが実行されている例である。



「setup.exe」を実行

.MSIセットアップから実行される必須コンポーネントの例
Visual Studio 2005のセットアップ・プロジェクトで生成される「setup.exe」ファイルをダブルクリックするなどして実行すると、このような必須コンポーネントのインストーラが立ち上がる。すでにコンポーネントがインストール済みの場合は立ち上がらない。なお、.MSIファイル自体を実行した場合、必須コンポーネントの仕組みが働かないようだ。従って、必ずsetup.exeファイルを実行しなければならない。

 それでは以下では、必須コンポーネントを設定する方法を説明する。なお開発環境としてVisual Studio 2005 Standard Edition以上を使うことを前提とする。

Visual Studio 2005での必須コンポーネントの設定方法

 まずは当然、セットアップ・プロジェクトが必要になる。これを作成するには、Visual Studio 2005のIDEのメニューバーから[ファイル]−[新規作成]−[プロジェクト]を選択して[新しいプロジェクト]ダイアログを開き、[その他のプロジェクトの種類]−[セットアップと配置]から「セットアップ プロジェクト」を選択し、任意の名前(本稿の例では「Setup1」)でプロジェクトを新規作成する。

 次に、ソリューション・エクスプローラでプロジェクト項目(本稿の例では「Setup1」)を右クリックしてコンテキスト・メニューを表示し、そこから[プロパティ]を選択する。これによりプロジェクトのプロパティ(本稿の例では[Setup1 プロパティ ページ]ダイアログ)が開く。

 次の画面はそのプロジェクト・プロパティのダイアログから必須コンポーネントの設定を行っているところだ。



[必須コンポーネント]ボタンをクリック

必須コンポーネント(ブートストラッパ)の設定
プロジェクトのプロパティ(本稿の例では[Setup1 プロパティ ページ]ダイアログ)から必須コンポーネントの設定を行っているところ。なお注意点として、構成(DebugとRelease)ごとに設定を行わなければならないようだ。
  [構成プロパティ]−[ビルド]を選択する。
  セットアップをWeb上に配置する場合は、その配置先のURLをここに指定する。なお、このURLはで[アプリケーションと同じ場所から必須コンポーネントをダウンロードする]を選択する際に「アプリケーションの場所」として使われることになる。なお本稿ではWebからセットアップを実行するわけではないので、この欄は設定しない。
  [必須コンポーネント]ボタンをクリックすると、[必須コンポーネント]ダイアログが表示される。このダイアログはClickOnceの必須コンポーネントの設定で表示されるものと同じだ。
  デフォルトでチェックはオンになっているが、これをオフにすると必須コンポーネントのインストールが行われない。
  .MSIセットアップが実行するのに必要なコンポーネントを一覧から選択する。一覧のデフォルトの内容は次のとおりだ。
  ・Microsoft Data Access Component 2.8
 ・.NET Framework 2.0
 ・Microsoft Visual J# 再頒布可能パッケージ 2.0
 ・Microsoft Visual Studio 2005 レポート ビューア
 ・Visual C++ ランタイム ライブラリ (x64)
 ・Visual C++ ランタイム ライブラリ (x86)
 ・Windows インストーラ 2.0
 ・Windows インストーラ 3.1
 ・SQL Server 2005 Express Edition
  必須コンポーネントを配布している場所(=必須コンポーネントを置いている配布場所)を「開発元のWebサイト」「アプリケーションの配置場所と同じ」「任意の場所」の3種類から選択する。アプリケーションの配置場所とは、で選択したURLのことだ(を指定していない場合は、セットアップ・ファイルが置かれる場所と同じになる)。アプリケーションや必須コンポーネントを、Webからインストールしない場合は「アプリケーションの配置場所と同じ」を選択すればよい。これにより、.MSIセットアップ・ファイル(本稿の例では「Setup1.msi」)と「setup.exe」ファイルと同じ場所に、必須コンポーネントのインストーラの入ったフォルダ(本稿の例では「SampleBootstrapper」)が生成される。なお「開発元のWebサイト」を選んだ場合、例えば.NET Framework 2.0ならその開発元であるマイクロソフトのWebサイトが使われる。
  [OK]ボタンをクリックして、プロジェクト・プロパティの内容を保存すれば、必須コンポーネントの設定は完了だ。

 以上の設定を行ったうえで、セットアップ・プロジェクトをビルドし、そこで生成されるsetup.exeファイルを実行すれば冒頭で示した画面のような実行結果になるだろう。

 この必須コンポーネントを活用することにより、ユーザー環境へのアプリケーションの導入がスムーズに実現できるようになり、インストール作業によるアプリケーション配布コストを削減できる。End of Article

カテゴリ:Visual Studio 2005 処理対象:IDE
カテゴリ:セットアップ 処理対象:必須コンポーネント
 
この記事と関連性の高い別の.NET TIPS
GACコンポーネントをClickOnceで配布するには?
Visual Studio 2005で実行ファイルのあるフォルダを開くには?
ビルドの前後でカスタム処理を実行するには?(応用編)
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

ホワイトペーパーTechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  企業の仮想化に足りない“発想”とは?
仮想化運用管理のキモは意外なところに!

New!
  操作もマニュアルも分かりやすい!
ユーザー視点で開発されたPC管理ツール

New!
  仮想化すればコストは削減できるか?
仮想化に必要な「3つの視点」を解説する

  セキュリティを知り尽くす上野氏が登壇!
@ITメールソリューションLive! in Tokyo

  運用管理の課題を“2つの観点”から分析
ユーザー満足度の高い「仮想環境」とは?

  世界に通用するストレージの作り方とは?
製品に込めた思いを富士通の開発者に聞く

  OSSで手間も時間も、障害も減った――
「マピオンの事例」オープンソース活用法

  「ノートPCの持ち出し禁止」で大丈夫?
情報漏えいを防ぐ管理手法とインフラは?

  1日の処理を1秒に――MySQLの達人が語る
「コスト削減」できるチューニング

  ドキュメント作成を自動化して、SEの作業
効率を大幅アップ! Visio 2007の魅力

  急速に広がるHyper-Vでのサーバ仮想化
そのベストプラクティスをデルが解説

  @IT主催セミナーで語られた、「担当者に
求められるセキュリティ対策」をレポート

  @IT「Windows 7」 特設サイトオープン!
最新情報・移行ノウハウを公開しています