实际应用中遇到installShield2010制作的安装包在Win XP系统下安装十分快速,但在Win7系统下安装会在文件拷贝界面等待2-20分钟。

利用Win7的高级任务管理器的“分析等待链”功能查看


显示引起卡住的进程为 dotnetinstaller.exe,这个文件是installshield安装目录下自带的,从字面意义上就可以知道应该是用来安装.net环境的。
那我们再用windbg挂载到这个进程上去看看它到底在做些什么。

从堆栈上看出应该是在进行网络通信,卡住的原因应该是连接超时后反复连接。
再通过抓包看看网络通信内容

因为问题机器环境无网络连接,DNS请求全部失败。
至此,安装缓慢的原因已经找到,解决的方案就应该是屏蔽掉dotnetinstaller.exe进程。经过摸索发现只要在安装脚本中设置不再检测文件.net属性即可。

修改如下图。

本文详细介绍了在Win7系统下使用InstallShield2010制作的安装包安装速度慢的问题,通过使用高级任务管理器分析等待链,发现问题是由于dotnetinstaller.exe进程在网络通信时连接超时导致。解决方案是在安装脚本中屏蔽dotnetinstaller.exe进程,从而解决了安装缓慢的问题。
437

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



