利用installshield2010打包,要打包的程序包括一个.Net framework4.0。最初,打包程序运行完全没有问题,速度很快。
前一段时间,应用程序进行了修改,要重新打包,打包结束后,发现打包程序运行不正常,刚刚开始运行时没问题,但是到复制文件阶段速度特别慢,一个文件要1分钟,在卸载,删除文件时也特慢,但是都成功了。
这是为什么?
希望高手给予解答。万分感谢!

解决方案 »

  1.   

    InstallShield 常见问题cysbox7.blog.163.com
    1、问题描述:采用何种安装模式?
    实现方法:如果对用户界面等自定义要求不高的话,建议用Basic MsiProject,否则用InstallScriptMSI Project。2、问题描述:安装后快捷方式为乱码。
    实现方法:将简体中文设为默认安装语言后删除English前的勾。操作步骤:在Installation Designer页面中Installation Information-GeneralInformation(或在ProjectAssistant页面中单击中的String Tables右击Chinese(simplify)在弹出的快捷菜单中选择Make default,回到Project Assistant页面的去掉English前的勾。3、问题描述:安装界面的中文全显示为乱码。
    产生原因:之前已编译过英文的安装包。
    实现方法:在Bulid菜单中的Release Wizard中修改设置再重新编译即可。4、问题描述:如何修改系统默认的安装文件夹?
    实现方法:在Information-Product Properties中INSTALLDIR右侧的文本框中单击,再单击文本框右侧的,在弹出的Set INSTALLDIR对话框中新建目标文件夹,点击OK后,再次点击选择刚才建好的那个文件夹。点OK 即可将默认的安装目录修改。
    5、问题描述:怎么在开始程序中加上卸载的快捷方式。
    实现方法:在Project Assistant页面的中单击左侧的。6、问题描述:安装时怎么使控件自注册。实现方法:在Project Assistant页面的中右侧选中控件,右击选择Properties在弹出的对话框中勾上Self Register复选框。7、问题描述:怎么实现在卸载时有的控件不被删除。实现方法:在Project Assistant页面的中的左侧单击;或直接单击Installation Designer页面,选中Application Data下的Files and Folders,在Destination computer’s folders中选中不要被卸载的组件,右击选择Properties在弹出的对话框中勾上Permanent复选框(若没有复选框可以在organiztion处的setup design处设置)
    8、问题描述:怎么在Basic MSI Project安装工程中实现安装后运行指定的安装程序。
    实现方法:首先在Installation Designer页面的Behavior and Logic中单击InstallScript,右击Files在弹出的快捷菜单中选择New Script file,然后新建相关函数。例如:
    #include "ifx.h"
    export prototype RunSetIIS(HWND);function RunSetIIS(hMSI)STRING svResult;
    beginif(FindFile(INSTALLDIR,"设置IIS.exe",svResult)=0) then
    LaunchAppAndWait(INSTALLDIR^"设置IIS.exe","AUTORUN",WAIT);
    endif;
    end;
    然后再在Behavior and Logic中单击Custom Actions, 右击Custom Actions在弹出的快捷菜单中选择Custom Action Wizard在Action Type中选择Run InstallScript code,在Insert into Sequence中的Install Execute Sequence处选择After ISSelRegisterFinalize或者After InstallFinalize都行,其余按向导提示操作。9、问题描述:怎么样在安装或卸载过程中停止或开启、重启有关服务。实现方法:大体操作同8。相关函数LaunchAppAndWait, 以停止win自带的web服务为例:
    #include "ifx.h"export prototype StopWebservice(HWND);function StopWebservice(hMSI)beginLaunchAppAndWait("","net stop w3svc",WAIT);
    end;
    10、问题描述:怎么样在卸载后删除残留文件。
    实现方法:大体操作同8。相关函数DeleteDir, DeleteFile,注意不要对INSTALLDIR文件夹进行整个删除,以防安装在根目录时这样的删除操作会造成删除整个盘符的所有数据。11、问题描述:怎么样在安装完成之后创建新文件夹。
    实现方法:大体操作同8。相关函数CreateDir。12、问题描述:怎么使安装包只一个exe文件。实现方法:在Bulid菜单中单击Release Wizard,在Media Type对话框处选择Network inage-在Release Configuartion对话框处选中Compress all files,在Windows Installer Location,Installscript Engine处选中Extract engine form Setup.exe,其余按向导提示操作。13、问题描述:安装时提示有的文件正在使用不能被覆盖,怎么解决。实现方法:在Project Assistant页面的中右侧选中控件,右击选择Properties在弹出的对话框中定义要进行替换的overwrite参数。或直接单击Installation Designer页面,选中Application Data下的Files and Folders,在Destination computer’s folders中选中不要被卸载的组件,右击选择Properties在弹出的对话框中勾上Never Overwrite复选框。
    14、问题描述:怎么让用户选择安装路径。实现方法:在project Assistant中installationinterview处,将第三行的yes选上。
      

  2.   

    谢谢二楼。但是没有解决我的问题!
    我用的是Installshield script project.
      

  3.   

    我用的是Installscript project.
      

  4.   

    一旦开始复制文件,就特别慢,从第一个到最后一个!
    我的安装包里都是一些DLL,唯一的一个exe只有1M.
    但是,奇怪的是,在虚拟机下,很快速!
      

  5.   

    可以debug一下,试试看,具体在什么地方花费时间了。
      

  6.   

    看过了,就是在复制文件时出错,似乎是在复制第四个文件时出错了,是个DLL,在第四个以后,全部 很慢!
      

  7.   

    dll的复制是通过代码复制的么?
    如果是的话,看看能不能通过向ism文件里面添加文件的方式进行复制。