`

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

阅读更多

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

 

详细描述如下:

组里使用 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).

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics