家园
个人
文集
http://
www
.
5x54
.
com
安装程序 Repack 攻略 之 MSI 篇(MS版)
作者:
网上收集
点击:
读取中...
次
下面是我对 MSI 的基本情况的认识
版权保护,请不要随意复制^%#$32427)98sa。^_^
,如果只想了解怎么进行 Repack
版权保护,请不要随意复制^%#$32427)98sa。^_^
,也可以跳过这一部分。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
MSI 概述
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
MSI 最基本的部分是对安装程序的一个描述
版权保护,请不要随意复制^%#$32427)98sa。^_^
,包含了一个所谓安装信息数据库
版权保护,请不要随意复制^%#$32427)98sa。^_^
,涉及到安装界面、所使用的文件、快捷方式、INI文件、注册表、以及版本控制和反安装信息等。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
对于安装时所使用到的文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,MSI 可以有 3 种方式来处理:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
1.文件随同安装程序以原生态发布
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
2.文件压缩成 Data.cab 的形式随安装程序发布
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
3.文件压缩成 .cab 文件后注入到 .msi 文件中
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
显而易见
版权保护,请不要随意复制^%#$32427)98sa。^_^
,一般安装程序很少以第一种方式发布
版权保护,请不要随意复制^%#$32427)98sa。^_^
,而第二种和第三种比较常见。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
对于注入到 .msi 文件中的情况
版权保护,请不要随意复制^%#$32427)98sa。^_^
,需要首先用 orca 找出 Media 的描述值
版权保护,请不要随意复制^%#$32427)98sa。^_^
,然后用 msidb 将 .cab 从 .msi 中抽取出来
版权保护,请不要随意复制^%#$32427)98sa。^_^
,如果直接以 Data.cab 形式发布就可以省去这一步操作。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
如果要添加移除或是替换 .cab 中的文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,需要先用 orca 找出文件对应的描述值(可能就是文件名本身或是一串HEX编码抑或两者的结合)
版权保护,请不要随意复制^%#$32427)98sa。^_^
,然后将 .cab 文件解包
版权保护,请不要随意复制^%#$32427)98sa。^_^
,按照描述值的文件名来操作文件后再用 cabarc 重新打包回去。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
如果 .cab 是从 .msi 抽取的
版权保护,请不要随意复制^%#$32427)98sa。^_^
,再用 msidb 重新编入。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
本文以修改 RemotelyAnywhere.msi 为例进行操作说明
版权保护,请不要随意复制^%#$32427)98sa。^_^
,目标是用 RemotelyAnywhere 补丁替换安装包中的原文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,同时将购买的许可协议集成在安装包内
版权保护,请不要随意复制^%#$32427)98sa。^_^
,达到安装完毕后直接可以使用的效果:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
文中提及的工具
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[urltp://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/cabsdk.exe[/url]
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
1. 使用 orca 打开 RemotelyAnywhere.msi
版权保护,请不要随意复制^%#$32427)98sa。^_^
,选择 TOOLS 菜单的 OPTIONS 命令
版权保护,请不要随意复制^%#$32427)98sa。^_^
,切换到 DATABASE 面板
版权保护,请不要随意复制^%#$32427)98sa。^_^
,勾
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
选“Generate a unique Package Code each time a database is saved”
版权保护,请不要随意复制^%#$32427)98sa。^_^
,然后执行 File 菜单的 Save as 命令
版权保护,请不要随意复制^%#$32427)98sa。^_^
,把 RemotelyAnywhere.msi 文件另存为 ra.msi 文件。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
2. 使用 orca 打开 ra.msi
版权保护,请不要随意复制^%#$32427)98sa。^_^
,在左侧 Tables 中选择 Media
版权保护,请不要随意复制^%#$32427)98sa。^_^
,在右侧 Cabinet 列可以看到压缩包名称为 #data.cab
版权保护,请不要随意复制^%#$32427)98sa。^_^
,记下
版权保护,请不要随意复制^%#$32427)98sa。^_^
,关闭 orca。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
3. 使用 msidb 从 ra.msi 中提取 data.cab:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
msidb.exe -x data.cab -d ra.msi
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
4. 将 data.cab 中的文件展开:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
·建立 files 目录
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
md files
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
·展开文件到 files
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
expand data.cab -F:* files
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
·删除 data.cab
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
5. 将补丁文件 RemotelyAnywhere.exe 复制到 files 目录中覆盖原文件。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
6. 将文件重新打包成 data.cab :
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
cabarc.exe -m LZX:21 -r N data.cab "files\*"
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
7. 将 data.cab 编入 ra.msi 中:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
msidb.exe -a data.cab -d ra.msi
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
8. 使用 orca 打开 ra.msi
版权保护,请不要随意复制^%#$32427)98sa。^_^
,在左侧 Tables 中选择 Registry
版权保护,请不要随意复制^%#$32427)98sa。^_^
,在右侧工作区点右键
版权保护,请不要随意复制^%#$32427)98sa。^_^
,选择 Add Row
版权保护,请不要随意复制^%#$32427)98sa。^_^
,按以下内容输入各列:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
引用代码:
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Registry] REGISTRY_LICENSE
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Root] 2
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Key] Software\RemotelyAnywhere\V5
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Name] License
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Value] -----BEGIN LICENSE-----
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
PRODUCT RemotelyAnywhere...
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
[Component] Service_Files
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
这里是自己的编撰了一个注册表项用于安装时自动输入许可文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,Value 栏的内容就按你购买的 License 的内容输入即可。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
9. 使用 orca 保存完成后的 MSI
版权保护,请不要随意复制^%#$32427)98sa。^_^
,收工。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
PS: 本文中因为只涉及替换文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,所以没提及增减文件的操作
版权保护,请不要随意复制^%#$32427)98sa。^_^
,如果有需要这方面的操作
版权保护,请不要随意复制^%#$32427)98sa。^_^
,首先应在操作 cab 包时增减文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,并用 orca 打开 msi 文件对以下数据表项进行调整:FeatureComponents、File
版权保护,请不要随意复制^%#$32427)98sa。^_^
,具体操作在此不赘述
版权保护,请不要随意复制^%#$32427)98sa。^_^
,遇到具体案例时可以联系我
版权保护,请不要随意复制^%#$32427)98sa。^_^
,到时根据实战再修改此贴。
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
版权保护
版权保护,请不要随意复制^%#$32427)98sa。^_^
,请不要随意复制^%#$32427)98sa。^_^
TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的
版权保护,请不要随意复制^%#$32427)98sa。^_^
,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,同样
版权保护,请不要随意复制^%#$32427)98sa。^_^
,如果原始安装程序是 InstallShield 制作的单个文件
版权保护,请不要随意复制^%#$32427)98sa。^_^
,不妨试一试用右键打开
版权保护,请不要随意复制^%#$32427)98sa。^_^
,WinRAR 可以将其解压还原出多个文件。
收藏此文章
打印
更新
编辑此文章
『关闭窗口』