マージ モジュール (.msm) は、単純化された Windows インストーラー ファイル (.msi) と構造が似ています。マージ モジュールは単独ではインストールできません。.msi ファイルにマージする必要があります。最良の代替手段は、自由に配布されているマージ ツールを入手するか、独立したソフトウェア ベンダーから入手可能なマージ ツールのいずれかを購入することです。その後、 Mergemod.dllによって提供される機能を使用できます。マージ モジュールの使用目的は、開発者が共有 Windows インストーラ コンポーネントとセットアップ ロジックをアプリケーションに配布するための標準的な方法を提供することでした。したがって、マージは通常、インストール パッケージの作成者が展開前に行うものです。アプリケーションのインストール時に正しいマージを決定して実行しようとすることは、最善の方法とは思えません。
代わりに、ターゲット プラットフォームごとに個別の .msi を作成できます。適切な .dll を各パッケージにマージします。次に、セットアップ アプリケーションにロジックを含めて、ユーザーのシステムをチェックし、正しいパッケージをインストールします。
前の回答で示唆されたように、すべての .dll を作成した単一のインストール パッケージにマージして、特定の機能とコンポーネントのインストールがオペレーティング システムのプロパティ値に依存するようにすることができます。
パッケージで推移的なコンポーネントを使用することを検討できます。推移的なコンポーネントの一般的な用途は、システムのアップグレード中に製品を再インストールする準備をすることです。インストール パッケージの作成者は、システムのアップグレード中にスワップ アウトする必要があるコンポーネントを推移的な属性として指定します。ユーザーが後でシステムをアップグレードするときは、製品を再インストールする必要があります。この再インストール時に、インストーラーは以前のコンポーネントを削除し、新しいコンポーネントをインストールします。製品全体をインストールする必要はありません。ユーザーがシステムをアップグレードすることを期待している場合、これはシナリオに適している可能性があります。