Что такое формат файла MSM?
Файл .msm - это модуль слияния Windows Installer, многоразовая единица упаковки, которая доставляет общие компоненты (DLL, шрифты, записи реестра, регистрации COM) в несколько пакетов установщиков MSI без дублирования логики. Модули слияния не могут быть установлены сами по себе; они должны быть объединены с родительской базой данных .msi во время сборки с использованием Mergemod.dll из Windows Installer SDK или таких инструментов разработки, как WiX Toolset, InstallShield или Advanced Installer.
Внутри файлы .msm используют тот же контейнер OLE2 Compound File Binary (CFB), что и пакеты .msi - магические байты на уровне файла (D0 CF 11 E0 A1 B1 1A E1) идентичны. Контейнер содержит подмножество реляционных таблиц базы данных Windows Installer (File, Component, Registry и другие), а также специфические для MSM таблицы, такие как ModuleComponents, ModuleDependency и ModuleSignature. Файлы полезной нагрузки хранятся во встроенном потоке MergeModule.CABinet, сжатом с помощью LZX или MSZIP.
Каждый GUID компонента внутри модуля слияния уникален, что предотвращает конфликты имен таблиц при поглощении модуля родительским установщиком. Формат был представлен в 1999 году вместе с Windows Installer 1.0 в Windows 2000; последнее обновление спецификации вышло с Windows Installer 5.0 (Windows 7 / Server 2008 R2).
Современная упаковка все чаще отдает предпочтение MSIX для Windows 10 и более поздних версий, который не поддерживает модули слияния. WiX v4/v5 по-прежнему поддерживает их через элемент <MergeRef> для обратной совместимости. Файлы .msm можно просмотреть с помощью Orca (Windows Installer SDK) или открыть в 7-Zip как составные документы OLE2.
Безопасность и защита
РИСК: MEDIUMФайлы MSM - это компоненты установщика, которые при слиянии с MSI и выполнении устанавливают файлы, ключи реестра и объекты COM в системе Windows. Не объединяйте ненадежные файлы .msm в рабочие установщики. Перед использованием проверьте их с помощью Orca или 7-Zip. Файлы могут иметь подпись Authenticode; проверьте подпись, если она имеется.
Детали формата
в двух словах- Модуль обложки MediaMonkey - Аудиоплеер MediaMonkey использует .msm для файлов обложек/модулей - не связано с Windows Installer.
Программы, открывающие файлы MSM
Технические подробности
глубокая спецификация| Формат контейнера | OLE2 Compound File Binary (CFB / Structured Storage) - тот же контейнер, что и в .msi и устаревших файлах .doc/.xls |
| Магические байты | D0 CF 11 E0 A1 B1 1A E1 по смещению 0 (сигнатура OLE2 CFB, общая с .msi) |
| Порядок байтов | Little-endian |
| Встроенный cabinet | Поток MergeModule.CABinet внутри контейнера OLE2; файлы сжаты с помощью LZX или MSZIP |
| Тип базы данных | Реляционная база данных Windows Installer - подмножество таблиц MSI плюс специфические таблицы MSM |
| Таблицы, специфичные для MSM | ModuleComponents, ModuleDependency, ModuleExclusion, ModuleSignature, ModuleSubstitution |
| Автономная установка | Невозможна - должен быть объединен с родительской базой данных .msi во время сборки через Mergemod.dll |
| Политика GUID компонентов | Каждый GUID компонента уникален для модуля, чтобы предотвратить конфликты имен таблиц при слиянии |
| Типичный размер файла | от 50 КБ до 50 МБ в зависимости от упакованных данных |
| Подпись кода | Необязательная подпись Authenticode; по умолчанию не применяется |
| Связанная ОС | 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
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MSM.