InstallShield:"错误提示对话框"显示异常

本文介绍了一个关于InstallShield在进行并发安装时出现错误对话框的bug及其解决方案。通过反编译InstallShield的Jar文件并debug,找到了导致该问题的字符串VPDInUse,并说明了如何在StringTable中设置相应的值来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要: 同时运行两个安装提实例, 错误提示对话框显示不正.

 

详细描述如下:

组里使用 InstallShield 10.5 为我们的 Java 项目制作安装器 ( 实质是一个 jar),

发现一个bug,同时运行两个安装器实例时 , 会弹出错误对话框 .

而这个对话框显示异常 , 只有一个确认按钮 , title info message 的内容均为空白 .

 

很显然 , InstallShield 需要一个字符串 , 而这个字符串是我们可以配置的 ( 这一点是我十分相信 InstallShield ).

但遗憾的是 , 这个问题的答案我们都没有 google , 包括英文关键字在内,

于是我的解体思路就是到 Install 里面找这个字符串 , 找使用这个字符串的函数 , 找使用这个字符串的事件 .

 

而我的另一个同事 Liu 同学 , 则使用了完全不同的方法 , InstallShield Jar 文件反编译 , 很High的开始了 Debug 之旅 . 而没多久 , 便找到了这个字符串 :VPDInUse.

 

解决问题之后,总结了一下,真实的问题是这样的 :

InstallShield 在第一次安装的时候便会对下面文件夹中的内容加锁 :

C:\Program Files\Common Files\InstallShield\Universal\common\Gen1\_vpddb

包括下面文件 : vpd.data,vpd.properties,vpd.script

 

而第二个安装实例运行时 , 找不到这个锁 , 于是便弹出错误对话框提示 , 而这个对话框中使用的字符串是 VPDInUse. 在StringTable中设置该字符串的相应值即可.

 

总结:

反编译这一招很好, 用我们熟悉的东西(Java), 去解决我们不熟悉领域的问题(InstallShield).

这正是扬长避短, 需要发扬.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值