关于对msi安装包彻底拆包安装的经验_拳头煲领地_百度空间

  我个人喜欢将尽可能拆包的单一文件的安装包拆到不可再拆,然后把对应拆出来的安装源文件组合成一个光盘镜像,再安装。

  这种做法好处在于:

   ①单一文件的安装包直接运行的话,在安装过程中其实是自行拆包的,且把中间文件释放到临时目录甚至系统关键目录。好心一点的安装包还会自动清理中间文件,但大多数会对自己产生的垃圾熟视无睹,白白浪费硬盘空间,用户还不易发觉。而拆包拆到最彻底后再安装则可使中间临时文件数量达到最少,多数情况下甚至无须产生中间文件。

   ②单一文件的安装包由于本身对所含内容打包压缩,需要自行拆包,所以带有自解压内容,使安装包总体积虚大,彻底拆包后虽然产生的文件数很多,表面上占用体积大,但对这些文件压缩成单一压缩包后,得出的单一文件的体积就会比原始安装包细很多,而且这样的最终单一文件比一堆散的源文件组要少浪费很多簇空间。我喜欢压成isz光盘镜像,一方面不用每次安装时先解压(试过WinMount,效果不理想),只要导入虚拟光驱即可,另一方面isz格式的压缩率和常规压缩格式相当,能省不少硬盘空间。例如VMware7.0.1-227600,原exe安装包足有515M,可彻底拆包做成isz镜像后,只有321M,安装完功能一点不缺,且系统盘少损失近400M空间。

   ③同一厂家类似的安装程序有多个的话,如果采用原始单一文件安装包,则文件体积是直接累加的。而当把所有这些单一文件安装包分别彻底拆包后放在不同目录,再将这些目录压入同一光盘镜像时,可通过镜像对相同内容文件只储存一次的原理达到节省体积的效果。盖因同一厂家类似的安装程序分别彻底拆包后,会有一大堆相同的文件,这意味着每个程序组采用相同的方式和打包组件进行安装的。例如采用这些方法对待Kong Audio的那堆VSTi,做成的镜像只有2G稍多一点,而原安装包总体积达到4.6G!

  依据不同单一文件安装包采用的打包格式,拆包工具和方法有不同,这不是本文所要讲的重点。

  在众多安装包文件中,msi格式有点欺骗性。由于msi多数会被重包装为exe格式,导致很多人把exe解出一个单独的msi后就以为拆包完成了。其实非也。真正msi彻底拆包后,必然是一个体积很小的msi文件(仅起到引导安装和寄存安装信息的作用)和若干目录和文件的组合,且这些非msi的文件和目录缺一不可。不符合这样特征的msi包必定可以继续拆!有些msi包甚至是连续几层msi封装,真让人感到那些出版者的变态。提示:带有数字签名的msi包几乎99.99999%可以继续拆。

  这是ACDSee Pro 3.0.387彻底拆包效果图,原单文件安装包56M左右,拆包后总文件162M,压成isz镜像后只有49M。拆包后安装比原单文件安装包安装少损耗系统分区近百兆空间。

  不过把msi彻底拆包也要注意,个别会导致出现意外情况的:

   ①类似Apple出的Safari或QuickTime,把原单一安装包解包到某个步骤产生若干msi文件时就得停手,因为其安装过程是在安装主功能过程中调用另一个msi包来安装。可能有指纹验证等暗桩,导致若彻底拆包后,无论怎么摆放生成的文件位置以及修改最终msi文件名都无法将安装过程进行完毕。这种情况毕竟少数(目前我只见过Apple的软件有这样的安装方式嗜好),也就只能让步接受了。

   ②把msi彻底拆包后,部份软件安装过程中就没有了选择安装路径的界面了,若直接运行那个起引导作用的小msi的话,只能装在默认路径。例如Skype、诺基亚的手机PC套件、凤凰刷机软件等。处理方式很简单。双击msi直接运行实际上是默认调用系统中的msiexec.exe来动作于这个msi程序,因而只要做个批处理文件,加个“INSTALLDIR”参数就可以了。以Skype为例,彻底拆包后,在生成的Skype.msi引导程序的同一目录下创建一个批处理文件,内容一行即可:“msiexec /i "Skype.msi" INSTALLDIR="F:\Skype\"”,我这里假设目标目录是F:\Skype,注意{zh1}一个“\”不能省,运行这个批处理文件就达到意向效果了。



郑重声明:资讯 【关于对msi安装包彻底拆包安装的经验_拳头煲领地_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——