【问题标题】:How can I reduce the size of a 1GB MSI file using Orca?如何使用 Orca 减小 1GB MSI 文件的大小?
【发布时间】:2019-05-30 14:42:12
【问题描述】:

我编写了一个 C# WPF 应用程序。我现在已经创建了一个将安装应用程序的 MSI。但是,文件大小是巨大的。该应用程序包含许多视频和图像文件,它们结合在一起使 MSI 的大小高达 1GB。

我尝试使用 Orca 减小文件大小。我使用“另存为”创建了一个全新的 MSI,还导出了数据库表,然后将它们导入到另一个 MSI。在这两种情况下,文件大小都减小到小于 1MB,但是安装程序根本无法工作。看起来它不是压缩内容,而是完全删除它。

如何使用 Orca 来减小 MSI 文件大小而不停止安装的实际工作?如果有其他方法可以做到这一点,我愿意接受任何建议。

【问题讨论】:

  • 好吧,如果您的 MSI 包含文件,则只能通过删除这些文件来减少它。视频和图片通常已经压缩,因此 MSI 压缩不会减小它们的大小。您只能从 MSI 文件中提取文件柜存档并将其放在附近。
  • 是什么让您认为 Orca 可以帮助您处理图像和视频大小?至少我是这样理解你的问题的...尝试使图像和视频的大小更小...对它们使用更强的压缩(这可能也意味着不同的图像/视频文件格式/编解码器)
  • @elgonzo Orca 是我熟悉的唯一 MSI 编辑工具,我听说它可以用来减小 MSI 大小,但我找不到更多信息来进一步解释这一点.但就像我在问题中所说的那样,如果有其他方法可以做到这一点,我愿意接受建议。 Orca 不是我唯一愿意使用的东西。
  • 我知道这听起来很傻,但是将 msi 文件变小并添加一个包含负载的附加 .cab 文件会有所帮助吗?我真的不明白你要完成什么..你交付大文件..你得到一个大安装程序。

标签: c# wpf windows-installer orca


【解决方案1】:

首先,使用 MSI 中的外部(未嵌入)cabs 构建安装包。这将向您显示 MSI 相对于您安装的其余部分有多大。您可能会发现 MSI 大小与压缩文件中的内容相比微不足道。我的猜测是视频和图像在机柜中的压缩效果不佳。

如果我的假设是正确的,那么您的目标是为文件柜中的文件找到最佳压缩。

注意:如果您使用 WiX 工具集构建您的 MSI,我们已经采取措施确保 MSI 部分尽可能小。您不太可能在上面找到重要的优化(如果有,请通过 wix-devs@lists.wixtoolset.org 告诉我们,我们很乐意改进:)。

【讨论】:

  • 我没有检查WiX项目的默认压缩级别是多少?它是完全“高”的吗?我想我会自己做一个快速测试 - 除非你知道吗?
  • IIRC,它是mszip,这在当时是一个合理的平衡。但这是基于记忆的。从那时起已经进行了优化,所以我现在可能完全错了......尤其是MediaTemplate(这是相当新的)。
  • 如果有人对 MSI 有任何误解.. 即使多年后.. 可能不是你 @RobMensching :)
  • 快速测试表明<MediaTemplate EmbedCab="yes" CompressionLevel="high" /> 的压缩比没有为CompressionLevel 定义任何内容时要多。换句话说,我猜high 启用了LZX compression。不确定副作用?
【解决方案2】:

在线:你能把一些视频放到网上吗? YouTube?随着时间的推移,更易于管理和更新。让没有下载您产品的人更容易访问?更适合营销?这取决于内容是帮助材料还是您要销售的实际产品。如果互联网不可用,您可以安装低分辨率版本的视频和图像作为后备机制吗? Maybe see this older answer?

压缩:您使用的是 WiX?不? On selecting an MSI tool。如果您使用的是 WiX,那么您可以尝试将 highest compression level 用于 MSI 吗? (MSI compression levels)。这意味着您必须使用新设置重建它。有其他元素可以这样做:

WiX:在 WiX 中很容易设置压缩级别:

<MediaTemplate EmbedCab="yes" CompressionLevel="high" />

可以在此处找到有关编译 MSI 的最小 WiX 标记的速成课程:Transparent aluminum! 带有内联 cmets 的底部标记通常足以让人们开始学习。在此处查看其他资源:installdude.com(我自己的实验站点 - 在左侧导航窗格中展开帮助部分)。还可以在顶部的快速搜索部分中查看 "WiX Samples"

我忘记了WiX quick-start tips answer


链接

【讨论】:

  • 我强烈推荐反对使用EmbedCab='yes',尤其是在这种情况下。 MSI 中的机柜将与 MSI 一起缓存(用于卸载目的)并占用用户系统驱动器上的空间。像这样的大型应用程序的嵌入式 cab 对用户来说尤其痛苦。
  • 可以用administrative images处理吗?本质上是从 MSI 中提取的美化文件,制作网络安装映像。还有here is a piece on the huge, cached files and administrative images as well as various space saving methods.
  • 从技术上讲,用户可以在他们的计算机上创建 MSI 的管理映像,并从该映像安装 MSI。但这需要一个技术娴熟的用户。从本质上讲,它将问题推给了用户,这对我来说似乎是错误的。
猜你喜欢
  • 2021-04-06
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多