今天在QQ群里有朋友反馈,说卸载了安装包之后,重启系统报错,提示文件找不到,具体见 【原创】InstallSheild使用问题笔记-卸载程序之后重新启动,总是报错找不到文件?
分析原因是卸载已经完成,但InstallShield向系统注册表中Runonce增加了一个卸载启动项所致(对应的文件已经不存在,自然会运行报错)。
找了相关资料,发现这是InstallShield的一个Bug,多发生在升级工程中,目前的解决办法是在OnEnd事件响应函数中添加如下代码:
function
OnEnd
()
begin
if (( REMOVEALLMODE ! = 0 ) && ( BATCH_INSTALL )) then
BATCH_INSTALL = FALSE ;
endif;
END ;
begin
if (( REMOVEALLMODE ! = 0 ) && ( BATCH_INSTALL )) then
BATCH_INSTALL = FALSE ;
endif;
END ;