记一次使用Orca.exe修改MSI安装包使其中只能在Windows XP安装修改为可以在Windows11安装的过程
背景信息
一个安装包只能在Windows XP运行安装成功,在高版本操作系统安装后会报错导致安装失败,需要修改MSI安装包的表来实现在Windows11上正常安装运行。
获取安装日志
通过如下命令记录安装失败详细日志进行分析:
msiexec /i "app.msi" /L*v "D:\app_log_new.log"
得到安装错误日志:
PDINSTALL: Function MakeVDDRegEntry: 'Failed to add entry!'
CustomAction MakeVDDRegEntry.2ED9-5D4_74AF-48B6-8026-1C8DFA2F02A5 returned actual error code 1603
Action ended 15:50:17: MakeVDDRegEntry.2ED9-5D4_74AF-48B6-8026-1C8DFA2F02A5. Return value 3.
分析发现这个虚拟驱动程序vdd只能在Windows XP上成功执行注册,在其他版本上早就被放弃不被支持了。所以安装过程中报错给出了-3的错误参数反馈,导致安装失败,需要让安装程序略过这个action执行步骤。
修改MSI安装包
所以使用Orca.exe修改MSI安装包:
第一步:用Orca打开MSI文件
- 右键点击您创建的副本 Install Voxar 3D_modified.msi,选择 “Edit with Orca”。
第二步:定位并禁用失败的自定义操作
- Orca的界面左侧是数据表列表(Tables),右侧是选定表的内容。 在左侧的 “Tables” 列表中,找到并点击InstallExecuteSequence 表。 InstallExecuteSequence 表定义了在实际安装(文件复制、注册表写入等)过程中需要执行的操作及其顺序。
- 在右侧的表内容中,找到 Action 列。 点击 Action 列的表头进行排序,或者直接滚动查找。 找到值为
MakeVDDRegEntry.2ED935D4_74AF_48B6_8026_1C8DFA2F02A5 的那一行。 - 禁用该操作(推荐方法:添加永假条件)
找到 MakeVDDRegEntry… 这一行,然后查看 Condition 列。
无论 Condition 列原来是什么内容(可能是空的),直接将其修改为 1=0。
1=0 是一个永远为假的条件,这意味着当安装程序执行到这一步时,会因为条件不满足而自动跳过这个操作。修改后,按回车确认。
第三步:保存修改后的MSI文件
- 点击菜单栏的 “File” -> “Save”。然后关闭Orca。
安装测试
双击MSI文件进行安装,成功完成安装没有报错。
后记
MSI的可编辑功能的确非常强大,整体架构设计非常科学,参数非常丰富,对于企业级软件部署提供了强大的可编辑支持。
用Orca修改MSI包以支持Win11安装

被折叠的 条评论
为什么被折叠?



