【问题标题】:Read an MST file with vbscript使用 vbscript 读取 MST 文件
【发布时间】:2011-01-13 02:59:30
【问题描述】:

我正在尝试编写一个脚本,从一些 MSI 和 MST 文件中获取信息并将其写入文本文件。我实现了阅读 MSI 文件。但是,我收到以下消息。

Msi API 错误 80004005:OpenDatabase、DatabasePath、OpenMode 1:2219 2:3:4:

我这样打开文件

设置安装程序 = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError 暗淡的数据库:设置数据库 = installer.OpenDatabase(FileName, msiOpenDatabaseModeReadOnly):CheckError

它适用于 MSI 文件。我认为应该以不同的方式阅读 MST 文件。

如何使用 vbscript 读取 MST 文件?

【问题讨论】:

    标签: vbscript windows-installer


    【解决方案1】:

    我自己没有试过,但根据 MSDN,要查看转换文件 (MST),您需要打开 MSI 数据库,然后使用带有 msiTransformErrorViewTransform 参数的 ApplyTransform 方法。这将为您提供一个临时的_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
    

    【讨论】:

    • 在做了更多的研究之后,我不得不完全按照你的建议去做。好消息是,如果您不提交 MST 文件应用的更改,MSI 文件在磁​​盘中保持不变。
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    相关资源
    最近更新 更多