インストーラとマージ モジュールの使い分け
更新 : 2007 年 11 月
Visual Studio を使用すると、Windows インストーラ (.msi) とマージ モジュール (.msm) の、2 種類のインストーラを作成できます。Windows インストーラは、アプリケーションとファイルをほかのコンピュータにインストールするときに使用します。マージ モジュールは、複数のアプリケーションで共有するコンポーネントをインストールするときに使用します。
この 2 種類のインストーラの主な違いは、対象とするユーザーです。アプリケーションのエンド ユーザーが直接使用する実行可能ファイル、ドキュメント、HTML ページなどは、すべて Windows インストーラにパッケージ化する必要があります。開発者だけが使用できる DLL、コントロール、リソースなどは、マージ モジュールにパッケージ化する必要があります。エンド ユーザーに配布するときに、開発者がそのマージ モジュールを Windows インストーラにパッケージ化します。
原則として、複数のアプリケーションに共有されるコンポーネントは (共有される可能性のあるものも含めて) すべて個別にマージ モジュール化します。複数のコンポーネントを 1 つのマージ モジュールにすることもできますが、不要なファイルの配布を避けるため、コンポーネントごとにマージ モジュールを作成することをお勧めします。
1 つのマージ モジュールは、特定のバージョンのコンポーネントのスナップショットと考えることもできます。バージョンの競合を避けるため、コンポーネントのバージョンごとに新しいマージ モジュールを作成してください。
複数のアプリケーションでインストーラを構成して、関連する複数のアプリケーションを一度にインストールできます。複数のアプリケーションでインストーラを構成する場合、インストーラには、それらのアプリケーションが使用するすべてのコンポーネントのマージ モジュールを追加する必要があります。1 つのマージ モジュールが複数のアプリケーションによって使用されている場合でも、そのマージ モジュールを追加するのは 1 回だけです。