Прочитать MST-файл с помощью VBScript - PullRequest
3 голосов
/ 04 февраля 2010

Я пытаюсь создать скрипт, который получает информацию из некоторых файлов MSI и MST и записывает ее в текстовый файл. Я добился чтения файлов MSI. Тем не менее, я получаю следующее сообщение.

Msi API Error 80004005: OpenDatabase, DatabasePath, OpenMode
1:2219  2:  3:4:

Я открываю файл вот так

Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError
Dim database : Set database = installer.OpenDatabase(FileName, msiOpenDatabaseModeReadOnly) : CheckError

Отлично работает с файлами MSI. Я считаю, что файлы MST следует читать по-другому.

Как можно прочитать MST-файл с помощью vbscript?

1 Ответ

3 голосов
/ 04 февраля 2010

Я сам не пробовал, но, согласно MSDN, для просмотра файла преобразования (MST) вам нужно открыть базу данных MSI, а затем использовать метод ApplyTransform с параметром msiTransformErrorViewTransform , Это даст вам временную таблицу _TransformView, которую вы можете запросить, чтобы получить нужную информацию.

Итак, ваш код должен выглядеть так:

Const msiOpenDatabaseModeReadOnly    = 0
Const msiTransformErrorViewTransform = 256
Dim installer, database

Set installer = CreateObject("WindowsInstaller.Installer") : CheckError
Set database = installer.OpenDatabase(MSIFileName, msiOpenDatabaseModeReadOnly) : CheckError
database.ApplyTransform MSTFileName, msiTransformErrorViewTransform : CheckError
...