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