1

我刚刚制作了一个基本 MSI 安装程序 [使用 installshield 2012 spring Professional] 来安装 ActiveX 控件,我基本上添加了组件并为密钥文件启用了“在安装时提取 com 信息”选项。

我已经硬编码了目标路径并禁用了许可证、公司信息、目标路径选择对话框。在 seup.exe 下的版本中,我启用了压缩 MSZIP 。

ActiveX dll 的大小是 200 kb,但是生成的 setup.exe 文件的大小是 1.5 Mb,有什么办法可以进一步减小大小吗?

4

1 回答 1

1

您必须在 ORCA 中查看您的 MSI,才能了解膨胀的来源。您可能能够简化用于对话框的图形,或者您可能会发现 InstallShield 插入的一些您不需要的 C++ 基础结构自定义操作。(右键显示所有自定义操作)

我刚刚使用 IS2012 创建了一个基本 MSI,采用所有默认设置(包括 MSZIP),大小为 613KB。然后,我从 syswow64 文件夹(根据大小选择:ahtmlle2.ocx 218kb)中添加了一个任意 OCX,提取了 COM 数据并重新构建。MSI 使用 MSZIP 为 845KB,使用 LZX 为 809KB。

然后我查看了二进制表,看到了 SetAllUsers.dll 和 ISSELFREG.dll。这两个我都不需要,所以我把它们拿出来了。这让我降到了 438KB。

最后,我查看了对话框中使用的库存位图。(在我的例子中是 NewBinary1 和 NewBinary5。)横幅 (NB1) 是 4KB。对话 (NB5) 为 16KB。不是真的臃肿。我仍然把它们变成空白的白色 JPG 并重建。这让我达到了 424KB。可能还有一些其他的事情要追逐(对话框图标),但现在我决定尝试 WiX。

我使用相同的 JPG 创建了一个 WiX MSI,大小为 392KB。更小,但没有任何意义。我将其用作交叉检查我的 IS MSI 是否相当纯净。

于 2013-05-13T13:15:08.393 回答