我在哪里可以找到 msi 表列属性?

问题描述

CREATE TABLE `Directory` 
(
     `Directory` CHAR(72) NOT NULL,`Directory_Parent` CHAR(72),`DefaultDir` CHAR(255) NOT NULL LOCALIZABLE PRIMARY KEY `Directory`
)

在哪里可以找到有关上述 create 语句中使用的数据类型的信息?

我需要所有 msi 表的信息。

解决方法

MSI SDK:MSI SDK 中的这一部分列出了内置的 MSI 表:https://docs.microsoft.com/en-us/windows/win32/msi/database-tables - 有关更多技术信息,请参阅下面的 Orca 部分: Orca 安装文件夹中的文件 "orca.dat" 包含架构。

技术:首先要注意几点:以下划线开头的表格:_,例如 {{1 }}_Validation 是特殊表格 - 其中大部分在 Orca 中是不可见的。

  • _Validation table 是一个系统表,主要显示数据库架构。它在 MSI database validation (推荐阅读) 期间使用。您可以看到不同的:Database Column Data Types

    • 验证会对 MSI 数据库及其内容运行一系列检查,以检查常见问题以及与数据库架构的一致性。
    • 数据库检查在 _Streams 中实现。它们可以包含针对数据库的可运行代码 - 例如 VBScript 文件。使用 Orca 打开 *.CUB files 以查看内容。
    • 可以从 Orca 或通过命令行以交互方式调用验证。
  • _Streams table 是涉及 SQL 语句的临时表。与 _Storages 相同。还有一些这样的系统表。

Orca:Orca 是用于查看和修改 MSI 数据库文件的 SDK 工具。

  • 您可以使用 Orca 打开 MSI 并选择 *.CUB files 指定输出目录并选择导出所有表。您将获得带有内容描述的 Tables => Export Tables... 文件。在记事本或任何文本编辑器中打开。

  • 在 Orca 安装文件夹中有一个名为 *.idt 的文件。这显然是 MSI 文件的数据库架构。在 Orca 中打开该文件后,您可以对该文件使用 "orca.dat" 方法。只需导出所有表,这应该是导出为 "Export Tables" 格式的所有有效 MSI 表。将有应指示数据类型的标题:

    IDT Files

MSI SDK VBScript:包含在与 Visual Studio 一起安装的 SDK 中,您会发现许多 VBScript 文件,这些文件显示了您在处理 MSI 时可以使用的许多技术文件。 Windows Installer Scripting Examples。查看以下内容:*.idt - 替换为倒数第二个文件夹名称的当前数字。 Quick preview of the files here