如何压缩合并模块?
我有一些来自第三方的合并模块(MSM 文件)。不幸的是,我认为制造 MSM 的无人机只是点击了 InstallShield,并没有制造出漂亮、紧凑的 MSM。我打开 MSM 并删除了一些绝对不需要的 InstallShield 自定义操作 - 它们会弹出一个控制台窗口并严重使我的设置变得臃肿。
这些 InstallShield 自定义操作二进制文件存储在 二进制表。我使用 Orca< 删除了这些条目/a> 并保存了 MSM。结果,我编译的 MSI 文件大幅减少。 (我使用WiX来编译)。
不幸的是,删除 逆戟鲸。我尝试使用“另存为”并保存到 MSM 文件,但结果只有 36 KB - 它也消除了 MSM 所需的实际文件!检查 7-Zip 中 MSM 前后的文件(以查看 MSI 使用的内部 OLE 结构化存储)表明有问题的数据流确实已被删除 - 但整个文件并没有缩小。
我怀疑我需要以某种方式压缩 MSM 文件以回收已删除的自定义操作所需的空间。我该如何做到这一点?
(我为什么要问?希望在向分布式源代码控制系统提交任何内容之前解决这个问题。)
I have a few merge modules (MSM files) from a third party. Unfortunately, I think the drones who made the MSMs just clicked through InstallShield and didn't make a nice, compact MSM. I opened the MSMs and deleted some InstallShield custom actions that were absolutely not needed - they popped up a console window and severely bloated my setup.
These InstallShield custom action binaries were stored in the Binary table. I deleted these entries using Orca and saved the MSM. As a result, my compiled MSI file decreased by a significant amount. (I use WiX to compile).
Unfortunately, the MSM files did not decrease in size after deleting the Binary table rows in Orca. I tried using "Save As" and saving to an MSM file, but the result was only 36 KB - it eliminated the actual files needed by the MSM, too! Examining the before and after MSM files in 7-Zip (to view the internal OLE structured storage that MSI uses) shows that the offending data streams were indeed deleted - but the overall file did not shrink.
I suspect I need to somehow compact the MSM file to reclaim space needed by deleted custom actions. How do I do this?
(Why am I asking? Would like to get this taken care of before committing anything to distributed source control system.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑合并模块文件并不简单,特别是因为它们包含 CAB 存档及其文件。我认为 Orca 还不够。
最简单、最安全的方法是使用安装创作工具导入它们,修改其设置和内容,然后生成新的 MSM 文件。
关于自定义操作,请注意安装程序创作工具(包括InstallShield)很少自动添加自定义操作。所以我敢打赌,这些自定义操作是有目的添加的。
在删除它们的信息之前,请确保您确实不需要它们。
Editing merge module files is not simple, especially since they contain a CAB archive with their files. I don't think Orca is enough.
The easiest and safest approach is to use a setup authoring tool to import them, modify their settings and content and then generate new MSM files.
Regarding the custom actions, please note that setup authoring tools (including InstallShield) rarely add custom actions automatically. So my bet is that those custom actions were added with a purpose.
Make sure that you really don't need them before removing their information.