MSM ファイル形式とは?
.msm ファイルは Windows Installer Merge Module です。これは、共有コンポーネント(DLL、フォント、レジストリ エントリ、COM 登録)を複数の MSI インストーラー パッケージに提供するための再利用可能なパッケージング ユニットであり、ロジックを重複させることなく利用できます。マージ モジュールは単体でインストールすることはできません。Windows Installer SDK の Mergemod.dll、または WiX Toolset、InstallShield、Advanced Installer などのオーサリング ツールを使用して、ビルド時に親の .msi データベースにマージする必要があります。
内部的には、.msm ファイルは .msi パッケージと同じ OLE2 Compound File Binary (CFB) コンテナを使用しており、ファイル レベルのマジック バイト (D0 CF 11 E0 A1 B1 1A E1) も同一です。このコンテナには、Windows Installer のリレーショナル データベース テーブル(File、Component、Registry など)のサブセットに加えて、ModuleComponents、ModuleDependency、ModuleSignature などの MSM 固有のテーブルが保持されています。ペイロード ファイルは、LZX または MSZIP で圧縮された埋め込み MergeModule.CABinet ストリーム内に格納されています。
マージ モジュール内のすべてのコンポーネント GUID は一意であり、モジュールが親インストーラーに吸収される際のテーブル名の競合を防ぎます。この形式は 1999 年に Windows 2000 の Windows Installer 1.0 で導入されました。最後の仕様更新は Windows Installer 5.0 (Windows 7 / Server 2008 R2) で行われました。
現代のパッケージングでは、Windows 10 以降向けの MSIX が主流になりつつありますが、MSIX はマージ モジュールをサポートしていません。WiX v4/v5 では、レガシー互換性のために <MergeRef> 要素を介して引き続きこれらを収容できます。.msm ファイルは Orca (Windows Installer SDK) で検査したり、7-Zip で OLE2 複合ドキュメントとして開いたりすることができます。
セキュリティと安全性
リスク: MEDIUMMSM ファイルはインストーラー コンポーネントであり、MSI にマージされて実行されると、Windows システムにファイル、レジストリ キー、COM オブジェクトをインストールします。信頼できない .msm ファイルを本番用インストーラーにマージしないでください。使用前に Orca や 7-Zip で検査してください。ファイルは Authenticode 署名されている場合があります。提供されている場合は署名を確認してください。
形式の詳細
概要- MediaMonkey スキン モジュール - オーディオ プレーヤー MediaMonkey は、スキン/モジュール ファイルに .msm を使用します。これは Windows Installer とは無関係です。
MSM ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナ形式 | OLE2 Compound File Binary (CFB / Structured Storage) - .msi やレガシーな .doc/.xls ファイルと同じコンテナ |
| マジック バイト | オフセット 0 に D0 CF 11 E0 A1 B1 1A E1 (.msi と共通の OLE2 CFB シグネチャ) |
| バイト順序 | リトルエンディアン |
| 埋め込みキャビネット | OLE2 コンテナ内の MergeModule.CABinet ストリーム。ペイロード ファイルは LZX または MSZIP で圧縮 |
| データベースの種類 | Windows Installer リレーショナル データベース - MSI テーブルのサブセットと MSM 固有のテーブル |
| MSM 固有のテーブル | ModuleComponents, ModuleDependency, ModuleExclusion, ModuleSignature, ModuleSubstitution |
| スタンドアロン インストール | 不可 - ビルド時に Mergemod.dll を介して親の .msi データベースにマージする必要がある |
| コンポーネント GUID ポリシー | マージ中のテーブル名の競合を防ぐため、コンポーネント GUID はモジュールごとに一意 |
| 一般的なファイル サイズ | パッケージ化されたペイロードに応じて 50 KB ~ 50 MB |
| コード署名 | オプションの Authenticode 署名。デフォルトでは適用されない |
| 関連 OS | Windows (Windows 2000 以降) |
| マージ ツール API | Mergemod.dll (Windows Installer SDK); WiX Toolset, InstallShield, Advanced Installer も使用 |
| WiX 互換性 | WiX v4/v5 は <MergeRef> 要素を介してマージ モジュールをサポート |
| 現代の代替手段 | MSIX/APPX パッケージング (Windows 10+) はマージ モジュールをサポートせず。新規開発には WiX のフラグメント/ライブラリ モデルが推奨される |
| リリース日 | 1999 (Windows Installer 1.0, Windows 2000) |
| 最新バージョン | Windows Installer 5.0 (Windows 7/Server 2008 R2) |
| 仕様書 | learn.microsoft.com |
MSM の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。MSM ファイルについて最初の質問をしてみましょう。