代码改变世界

Basic INFO - SUPPORTDIR变量的读取

2011-12-19 11:48  Kevin.Wan  阅读(1125)  评论(0编辑  收藏  举报

上周在客户那边进行InstallShield高级课程培训时遇到一个关于SUPPORTDIR的问题。


一直以来,对于MSI工程中获取SUPPORTDIR的值,我强烈推荐通过MsiGetProperty来读取,因为系统变量SUPPORTDIR和Property SUPPORTDIR两个保存的路径是完全不同的,有兴趣的朋友自己创建工程去验证一下。

可就是在演示过程中,发现通过MsiGetProperty如何也无法读取到SUPPORTDIR的Property值,检查代码没有任何问题,但就是无法获取相应的值。

后经现场一位同学提示,我所选择的示例工程中,并没有真正在Support Files视图中添加任何用于安装过程的文件。

最后我们分析了问题的原因,只有在Support Files视图中添加了文件,在安装初始化过程中,安装包将临时文件释放到这里,也才会去初始化SUPPORTDIR Property,否则为空。

 

大家可能会觉得这个问题在实践中并不会发生,我们肯定是先往Support Files中放置文件,然后才是调用。

不过事情往往有例外,大家一起想想?  

 

三人行必有我师也