【问题标题】:Extract CAB file from an MSI to create a smaller MSI?从 MSI 中提取 CAB 文件以创建更小的 MSI?
【发布时间】:2014-12-10 15:49:52
【问题描述】:

我正在考虑从一个大的 MSI 文件中删除 CAB 文件,所以我只剩下两个文件:一个小的 MSI 文件和一个大的 CAB 文件。

我一直在使用 msidb 来提取 CAB,但我在这里碰壁了,无法弄清楚如何减小 MSI 的大小以说明 CAB 不再存储在其中。

有什么建议吗?

【问题讨论】:

  • 我注意到在使用 msidb -x 提取 cab 文件然后使用 -k 删除流之后。然后您可以在 Orca 中打开 msi 并保存它,这会减小 msi 的大小。
  • 不确定您为什么要这样做,因为看到普通的administrative installation 会提取您的文件,并且您会在提取的文件旁边看到一个小 MSI。话虽如此,我想您可以在手动提取驾驶室后在 Orca 中打开 MSI 并执行“另存为”而不是“保存”。这可能只是创建一个新的更小的文件,因为它现在被序列化,在 COM 结构化存储文件(MSI 文件格式)中没有任何“间隙”。

标签: windows-installer cab


【解决方案1】:

MSI API 并没有说具有紧凑的数据库功能。有一个帮助主题:

Reducing the Size of an .msi File 表示:

删除浪费的存储空间并减小 .msi 的最终大小 文件,您有以下选项。 •导出所有表格 将数据库转换为 .idt 文件,然后将这些文件导入新数据库。 这会产生最紧凑的存储空间。 •使用软件 用于压缩 OLE 文档文件的存储空间的实用程序。

假设这是您的 MSI,只需使用您的工具将其构建为未压缩即可。如果是另一个 MSI,您必须遵循建议。您还需要更新 Media 表,告诉它您不再使用嵌入式 cab。

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多