Все, что я хочу, является инструментом командной строки, который может извлечь файлы из модуля слияния (.msm) на диск. Сказанный по-другому, я хочу ту же "административную установку" функциональность, которая возможна для MSI:
msiexec/a myProduct.msi TARGETDIR = "C:\myInstallation"/qn
Вышеупомянутое только работает над msi (рядом, как я могу сказать). Таким образом для получения того же эффекта для модуля слияния я пробую msidb.exe и orca.exe документация для состояний косатки:
Много опций модуля слияния могут быть указаны из командной строки...
Извлечение файлов от модуля слияния
Косатка поддерживает три различных метода для извлечения файлов, содержавшихся в модуле слияния. Косатка может извлечь отдельный файл CAB, извлечь файлы в дерево модуля и извлечь файлы в исходное изображение, после того как это было объединено в целевую базу данных...
Извлечение файлов
Для извлечения отдельных файлов из модуля слияния используйте
...-x... опция на командной строке, где желаемый путь к новому дереву каталогов.
Указанный путь используется в качестве корневого пути для извлеченных файлов. Все файлы извлечены из файла CAB, встроенного в модуль, и поместили в указанном пути. Расположение каталога для извлеченных файлов основано на дереве каталогов модуля слияния.
Это походит на то, в чем я нуждаюсь. Но когда я пробую его, косатка просто открывает редактора (с информацией о msm, который я указал), и затем ничего не делает. Я попробовал множество командных строк, обычно запускающихся с этого:
косатка-x theDirectory theModule.msm
Я использую "theDirectory" в качестве любой пустой папки, которую я хочу. Как я сказал - это ничего не сделало.
Затем я попробовал msidb, где несколько попыток, которые я предпринял, похожи на это:
{устройство хранения данных} msidb-d theModule.msm-w
msidb-d theModule.msm-x MergeModule. Корпус
В первом случае я не знаю, что поместить для {устройства хранения данных}. Во втором случае оказывается что литеральная строка "MergeModule. Корпус" необходим (это - зарезервированное имя). Однако извлеченный корпус не сохраняет файловую иерархию или "нормальные" имена файлов; таким образом, я не могу использовать его в своих целях.
Кто-то может объяснить, что я делаю неправильно с параметрами командной строки? Есть ли какой-либо другой инструмент, который может сделать это?