Извлечение файлов от модуля слияния

Все, что я хочу, является инструментом командной строки, который может извлечь файлы из модуля слияния (.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. Корпус" необходим (это - зарезервированное имя). Однако извлеченный корпус не сохраняет файловую иерархию или "нормальные" имена файлов; таким образом, я не могу использовать его в своих целях.

Кто-то может объяснить, что я делаю неправильно с параметрами командной строки? Есть ли какой-либо другой инструмент, который может сделать это?

8
задан Brent Arias 24 April 2010 в 00:02
поделиться