本文主要讨论使用微软的开发工具 orca 和 msidb 进行 MSI 安装包的修改封装,要查看如何使用 InstallShield 进行此操作,请查看此贴:
【原创】安装程序 Repack 攻略 之 MSI 篇(IS版)
下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 Repack,也可以跳过这一部分。
本文以修改 RemotelyAnywhere.msi 为例进行操作说明,目标是用 RemotelyAnywhere 补丁替换安装包中的原文件,同时将购买的许可协议集成在安装包内,达到安装完毕后直接可以使用的效果:
1. 使用 orca 打开 RemotelyAnywhere.msi ,选择 TOOLS 菜单的 OPTIONS 命令,切换到 DATABASE 面板,勾
选“Generate a unique Package Code each time a database is saved”,然后执行 File 菜单的 Save as 命令,把 RemotelyAnywhere.msi 文件另存为 ra.msi 文件。
2. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Media ,在右侧 Cabinet 列可以看到压缩包名称为 #data.cab ,记下,关闭 orca。
3. 使用 msidb 从 ra.msi 中提取 data.cab:
4. 将 data.cab 中的文件展开:
5. 将补丁文件 RemotelyAnywhere.exe 复制到 files 目录中覆盖原文件。
6. 将文件重新打包成 data.cab :
7. 将 data.cab 编入 ra.msi 中:
8. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Registry ,在右侧工作区点右键,选择 Add Row,按以下内容输入各列:
这里是自己的编撰了一个注册表项用于安装时自动输入许可文件,Value 栏的内容就按你购买的 License 的内容输入即可。
9. 使用 orca 保存完成后的 MSI,收工。
PS: 本文中因为只涉及替换文件,所以没提及增减文件的操作,如果有需要这方面的操作,首先应在操作 cab 包时增减文件,并用 orca 打开 msi 文件对以下数据表项进行调整:FeatureComponents、File,具体操作在此不赘述,遇到具体案例时可以联系我,到时根据实战再修改此贴。
TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件,同样,如果原始安装程序是 InstallShield 制作的单个文件,不妨试一试用右键打开,WinRAR 可以将其解压还原出多个文件。
【原创】安装程序 Repack 攻略 之 MSI 篇(IS版)
下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 Repack,也可以跳过这一部分。
本文以修改 RemotelyAnywhere.msi 为例进行操作说明,目标是用 RemotelyAnywhere 补丁替换安装包中的原文件,同时将购买的许可协议集成在安装包内,达到安装完毕后直接可以使用的效果:
1. 使用 orca 打开 RemotelyAnywhere.msi ,选择 TOOLS 菜单的 OPTIONS 命令,切换到 DATABASE 面板,勾
选“Generate a unique Package Code each time a database is saved”,然后执行 File 菜单的 Save as 命令,把 RemotelyAnywhere.msi 文件另存为 ra.msi 文件。
2. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Media ,在右侧 Cabinet 列可以看到压缩包名称为 #data.cab ,记下,关闭 orca。
3. 使用 msidb 从 ra.msi 中提取 data.cab:
4. 将 data.cab 中的文件展开:
5. 将补丁文件 RemotelyAnywhere.exe 复制到 files 目录中覆盖原文件。
6. 将文件重新打包成 data.cab :
7. 将 data.cab 编入 ra.msi 中:
8. 使用 orca 打开 ra.msi ,在左侧 Tables 中选择 Registry ,在右侧工作区点右键,选择 Add Row,按以下内容输入各列:
这里是自己的编撰了一个注册表项用于安装时自动输入许可文件,Value 栏的内容就按你购买的 License 的内容输入即可。
9. 使用 orca 保存完成后的 MSI,收工。
PS: 本文中因为只涉及替换文件,所以没提及增减文件的操作,如果有需要这方面的操作,首先应在操作 cab 包时增减文件,并用 orca 打开 msi 文件对以下数据表项进行调整:FeatureComponents、File,具体操作在此不赘述,遇到具体案例时可以联系我,到时根据实战再修改此贴。
TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件,同样,如果原始安装程序是 InstallShield 制作的单个文件,不妨试一试用右键打开,WinRAR 可以将其解压还原出多个文件。