(我在Installshield 2009下进行的操作,其他版本请参照执行)
由于开发中使用了OCX控件,如果目标机器上没有对应的OCX文件会造成应用程序无法正常运行,用InstallShield2009注册OCX控件时我走了弯路,最开始是使用INF文件,在InstallScript里写 rundll32 + INF文件名。这样可以正确加载OCX控件,但是在卸载时会把加载的OCX文件卸载掉。经过查找资料,发现InstallShield是自己带了自加载OCX等自动注册控件的功能。流程如下:
第一步:Project Assistant —> Application Files —>Destination Computer
右键[Destination Computer]->Show PreDefined Folder->选中“System Folder”
/*注意,[SystemFolder]其实就对应目标机器的system32目录,具体可以查看帮助,或者在Installation Designer-Media-Path Variables里面查看其他变量定义
第二步:左边列表将显示[SystemFolder],将需要注册的*.ocx和*.dll文件拖到这个文件夹中,选中这些文件,右键属性,勾中"Self Register"
第三步:在Installation Designer —>Orgnization—>Setup Design—>Default Feature ,Default Feature目录下有你刚才设置自动注册的文件,选中该文件名,右边就有相关的属性,Shared 属性选为 Ture,Permanent属性选为True(卸载时就会保留在系统中),这样你的注册控件就能顺利在目标机器上注册,能被其他程序锁使用,反安装的时候也不会被卸载掉。
Thanks to http://hi.baidu.com/eleven_714/blog/item/9718481610edda4d21a4e9de.html