我有一些来自第三方的合并模块(MSM 文件)。不幸的是,我认为制造 MSM 的无人机只是点击了 InstallShield,并没有制造出漂亮、紧凑的 MSM。我打开了 MSM 并删除了一些绝对不需要的 InstallShield 自定义操作 - 它们弹出了一个控制台窗口并严重膨胀了我的设置。
这些 InstallShield 自定义操作二进制文件存储在Binary表中。我使用Orca删除了这些条目并保存了 MSM。结果,我编译的 MSI 文件减少了很多。(我使用 WiX 编译)。
不幸的是,在Orca中删除 Binary table 行后,MSM 文件的大小没有减小。我尝试使用“另存为”并保存到 MSM 文件,但结果只有 36 KB - 它也消除了 MSM 所需的实际文件!检查 7-Zip 中的前后 MSM 文件(以查看 MSI 使用的内部 OLE 结构化存储)表明违规数据流确实被删除了 - 但整个文件并没有缩小。
我怀疑我需要以某种方式压缩 MSM 文件以回收已删除的自定义操作所需的空间。我该怎么做呢?
(我为什么要问?希望在向分布式源代码控制系统提交任何内容之前解决这个问题。)