Automation を使用してマージ モジュールをデータベースにマージする
マージ モジュール は、共有 Windows インストーラー コンポーネントを提供し、アプリケーションにロジックを設定するための標準的な方法を提供します。
マージ モジュールは、マージ ツールを使用してインストール パッケージにマージする必要があります。 ベスト プラクティスは、無料で配布されたマージ ツールを入手するか、独立系ソフトウェア ベンダーが提供しているいずれかのマージ ツールを購入することです。たとえば、 Mergemod.dllを使用できます。
次の手順では、 マージ モジュール オートメーションを使用して、マージ モジュールを Windows インストーラー データベースにマージする方法を示します。
モジュールをデータベースにマージするには
OpenLog メソッドを使用してログ ファイルを開きます。
この手順は、ログ ファイルを作成するか、マージ プロセス用に既存のログ ファイルを追加する必要がある場合にのみ必要です。
Merge オブジェクトの OpenDatabase メソッドを使用して、 .msi インストール データベースを開きます。
この手順は必須です。
開いたデータベースは、マージ モジュールを受け取るデータベースです。
OpenModule メソッドを使用して .msm マージ モジュールを開きます。
この手順は必須です。
これは、データベースにマージされるマージ モジュールです。 モジュールは、インストール データベースとマージする前に開く必要があります。
Merge メソッドまたは MergeEx メソッドを呼び出して、モジュールをインストール データベースにマージします。
この手順は必須です。
Merge メソッドまたは MergeEx メソッドは、 .msi ファイルと .msm ファイルの特定の組み合わせをマージするために 1 回だけ呼び出すことができます。
Note
MergeEx メソッドは、 Mergemod.dll バージョン 2.0 以降でのみ使用でき、 IMsmMerge2 インターフェイスを使用する場合にのみ使用できます。
Errors プロパティを取得し、返される Error オブジェクトのコレクションでマージの競合やその他のエラーを調べます。
エラーを解決する必要があります。
取得は非破壊的であり、 Errors プロパティを繰り返し読み取ることで、エラー コレクションの複数のインスタンスを取得できます。
Connect メソッドを使用して、マージ モジュールのコンポーネントを機能に関連付けます。
この手順は、既存の機能があり、インストール データベースにマージする機能を追加したい場合にのみ必要です。
このメソッドを呼び出す前に、機能が存在している必要があります。 詳細については、「 マージ モジュールを複数の機能に接続する」を参照してください。
必要に応じて、次の 1 つ以上を実行して、モジュールからソース ファイルを抽出します。
ExtractFiles または ExtractFilesEx を使用して、埋め込み.cab ファイルからファイルを抽出し、指定されたディレクトリにコピーします。
Note
ExtractFilesEx には、 Mergemod.dll バージョン 2.0 以降が必要です。
ExtractCAB を使用して埋め込み.cab ファイルからファイルを抽出し、指定されたファイルに保存します。
CreateSourceImage を使用してモジュールからファイルを抽出し、マージ後にディスク上のソース イメージにコピーします。
Note
CreateSourceImage は、 Mergemod.dll バージョン 2.0 以降でのみ使用できます。
CloseModule メソッドを使用して、現在開いているマージ モジュールを閉じます。
この手順は必須です。
CloseDatabase メソッドを使用して、開いているインストール データベースを閉じます。
この手順は必須です。
データベースを閉じると、すべての依存関係情報がクリアされますが、取得されないエラーには影響しません。
CloseLog メソッドを使用して、現在のログ ファイルを閉じます。
この手順は、開いているログ ファイルがある場合に必要です。
Mergemod.dllを使用してモジュールをデータベースにマージした後、 メディア テーブル を更新して、目的のソース イメージ レイアウトを記述する必要があります。 マージ モジュールのコンシューマーがソース イメージをレイアウトするさまざまな方法を選択できるため、Mergemod.dll によって提供されるマージ プロセスではメディア テーブルは更新されません。
関連トピック