我有来自第三方的一些合并模块(MSM文件)。不幸的是,我认为制作MSM的无人机只是通过InstallShield点击并且没有制作一个漂亮,紧凑的MSM。我打开了MSM并删除了一些绝对不需要的InstallShield自定义操作 - 它们弹出一个控制台窗口并严重臃肿我的设置。
这些InstallShield自定义操作二进制文件存储在Binary表中。我使用Orca删除了这些条目并保存了MSM。结果,我编译的MSI文件减少了很多。 (我用WiX编译)。
不幸的是,删除Orca中的二进制表行后,MSM文件的大小没有减小。我尝试使用“另存为”并保存到MSM文件,但结果只有36 KB - 它也消除了MSM所需的实际文件!检查7-Zip中的MSM文件之前和之后(查看MSI使用的内部OLE结构化存储)显示确实删除了有问题的数据流 - 但整个文件没有缩小。
我怀疑我需要以某种方式压缩MSM文件以回收已删除的自定义操作所需的空间。我该怎么做?
(为什么我要问?想要在向分布式源代码控制系统提交任何内容之前先处理这个问题。)
答案 0 :(得分:1)
编辑合并模块文件并不简单,尤其是因为它们包含带有文件的CAB存档。我认为Orca不够。
最简单,最安全的方法是使用设置创作工具导入它们,修改其设置和内容,然后生成新的MSM文件。
关于自定义操作,请注意,安装创作工具(包括InstallShield)很少自动添加自定义操作。所以我敢打赌,这些自定义动作是有目的的。
在删除信息之前,请确保您确实不需要它们。