■ 容易なデプロイメント

  • XCOPY で完了するデプロイメント
  • 推奨:適切なツールによるインストール (推奨)

Visual Basic 6.0 で作成したアプリケーションを配布するときは、多くの場合ディストリビューションウィザードや市販のインストーラ作成ツールを利用してインストーラを作成していました。なぜなら、アプリケーションのデプロイメント (配置) のためにしなくてはならないことがたくさんあったからです。

.NET Framework の目標のひとつは、このデプロイメントを単純化することです。そのために、「副作用なしのインストール」 と 「XCOPY によるデプロイメント」 を導入しています。

副作用なしのインストール

.NET Framework における配置の単位は、「アセンブリ」 です。アセンブリは自己記述的な性質 (自分自身を説明する能力) を持っています。アセンブリには、そのアセンブリ自身の名前やバージョン情報、提供するクラス/メソッド/プロパティ、そのアセンブリが利用するアセンブリのバージョン情報、などが含まれます。この性質のために、レジストリに必要な情報を登録する必要がなくなり、その結果として別のアプリケーションに影響を与えることがなくなります。

また、Side-By-Side の導入により、そのアプリケーションが利用するアセンブリを同じディレクトリに含めることができるため、アプリケーションのインストールによって他のアプリケーションに影響を与えることもなくなります。これにより、DLL Hell を回避します。

XCOPYによるデプロイメント

レジストリに依存していないため、デプロイメントの究極の方法として、アセンブリを DOS コマンドの XCOPY でコピーする方法を選択することもできます。

ただ、実際にはユーザーにファイルコピーを強いるのではなく、セットアップツールを利用したグラフィカルなユーザーインターフェイスの提供を推奨します。

Visual Studio .NET によるデプロイメント

Visual Studio .NET には、いくつかのデプロイメント用のプロジェクトテンプレートが用意されています。これらのテンプレートは、「新しいプロジェクト」 ダイアログ ボックスの [セットアップ/デプロイメントプロジェクト] ノードで確認できます (図 7)。

  • セットアッププロジェクト ─ Windows インストーラ (.msi ファイル) を作成します。自動修復機能や、オンラインデマンドインストールなど、高度なインストールおよびアプリケーションの維持を行なうことができます。
  • Web セットアッププロジェクト─ Web アプリケーションのインストーラ (.msi ファイル) を作成します。セットアッププロジェクトとの違いは、ファイルの配置される場所です。セットアッププロジェクトは、ファイルをターゲットコンピュータのファイルシステムにインストールし、Web セットアッププロジェクトは、ファイルを Web サーバーの仮想ディレクトリにインストールします。
  • マージモジュールプロジェクト ─ コンポーネントをパッケージ化したモジュール (.msmファイル) を作成します。これを、Windows インストーラに含めて、インストールすることができます。これにより、複数の Windows インストーラで共有利用できます。
  • CAB プロジェクト─ Web ブラウザに ActiveX コントロールなどをダウンロードするキャビネットファイル (.cab) を作成します。
  • セットアップウィザード

以上のいずれかのデプロイメントプロジェクトを対話式に作成するためのウィザードです。

これらの、Visual Studio .NET によるインストール以外にも、すでに紹介した XCOPYや、Web アプリケーションの配置のために [プロジェクト]-[プロジェクトのコピー] を利用することもできます。ただし、これらは単純にファイルがコピーされるだけであるため、たとえば IIS のディレクトリ設定などを別途手動で行なわなくてはいけません。できるだけ、「コピー」 ではなく、Windows インストーラなどによる 「デプロイメント」 を行ないましょう。

図 7:デプロイメント用のプロジェクトテンプレート

図 7:デプロイメント用のプロジェクトテンプレート