.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で配布するには?
ClickOnceアプリの起動時にパラメータを渡すには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間