安装程序 Repack 攻略 之 MSI 篇(IS版)

本文主要讨论使用 InstallShield 进行 MSI 安装包的修改封装,要查看如何使用微软提供的开发工具进行此操作,请查看此贴:

【原创】安装程序 Repack 攻略 之 MSI 篇(MS版)

下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 Repack,也可以跳过这一部分。

MSI 概述
MSI 最基本的部分是对安装程序的一个描述,包含了一个所谓安装信息数据库,涉及到安装界面、所使用的文件、快捷方式、INI文件、注册表、以及版本控制和反安装信息等。

对于安装时所使用到的文件,MSI 可以有 3 种方式来处理:
  1. 文件随同安装程序以原生态发布
  2. 文件压缩成 Data.cab 的形式随安装程序发布
  3. 文件压缩成 .cab 文件后注入到 .msi 文件中

显而易见,一般安装程序很少以第一种方式发布,而第二种和第三种比较常见。

对于注入到 .msi 文件中的情况,需要首先用 orca 找出 Media 的描述值,然后用 msidb 将 .cab 从 .msi 中抽取出来,如果直接以 Data.cab 形式发布就可以省去这一步操作。

如果要添加移除或是替换 .cab 中的文件,需要先用 orca 找出文件对应的描述值(可能就是文件名本身或是一串HEX编码抑或两者的结合),然后将 .cab 文件解包,按照描述值的文件名来操作文件后再用 cabarc 重新打包回去。

如果 .cab 是从 .msi 抽取的,再用 msidb 重新编入。



InstallShield.X 开发程序已经对繁琐的操作进行了很好地整合,只需要设置好,IS 会自动进行批处理重新编译 .msi 文件。让原本复杂的东西变得比使用解压软件还简单,下面就介绍一下操作吧。

运行 InstallShield 10.5 ,打开要操作的 .msi 文件,在左侧目录树中选中 Organization 下面的 Components,屏幕中部会出现安装程序的模块列表,在这其中找到要修正的文件所在的组选中,右侧会出现文件列表。

现在你可以在文件上点击右键移除不需要的文件,如果需要添加或者替换文件,可以直接将文件拖放进入这个窗口即可。提示是否覆盖原文件时选Yes。

好了,大干一番之后需要保存成果了,IS 会弹出窗口询问要怎样编码修正的文件。
  • 选 On the source media ,既是将文件以原生态伴随发布
  • 选 In a new cab file,是将文件打包成 Data.cab
  • 选 In a new cab file,同时选中Stream the new cab file into the Windows Installer是将文件打包成 .cab 并编入到 .msi 文件当中

怎么样?是不是和用 WinRAR 一样简单?这下我们可以把补丁集成到安装程序中了,就像原装的一样

TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件,同样,如果原始安装程序是 InstallShield 制作的单个文件,不妨试一试用右键打开,WinRAR 可以将其解压还原出多个文件。

你可能感兴趣的:(安装)