InstallShield6.3安装文件制作要点

类别:VC语言 点击:0 评论:0 推荐:
InstallShield6.3安装文件制作要点

做安装程序的工具挺多,我还是较喜欢用InstallShield6.3,但InstallShield6功能本身非常强大,你也许可以找到关于安装程序制作的大量资料,但你费上好一阵子来研究后却发现还是收效甚微,本文是帮你快速解决这一问题的。当然你要写出有自己个性的安装文件当然还需要另花些精力,但这里的介绍应该有很多实惠的帮助。

首先你要明确一般的安装程序要做的事主要是3件:

l         将可执行的文件(文件夹)及其所需的DLL等可执行所需文件拷到用户指定目录;

l         创建快捷方式(桌面、开始菜单)

l         写注册表等系统信息

1.       安装InstallShield6

注意要做中文版的安装程序的话需要单独安装相应的东方语言包。

2.       按向导建立安装工程

建议可以不填的内容且搞不清含义的先不填,要快就得这样,后面还还可以修改的。剩下的事全部基于工程的各项设置进行。工程设置包括分为7类:

1)  安装项目组件,默认的有MainApp,Tutorial,Examples,是将要安装的内容按逻辑分组的,让用户在安装时可选择必要的组件;

2)  文件组,默认的有AppExcutables,App Self Reg DLLs, Example Files, Tutorial Files,主要是将要打包的文件分组的;

3)  资源,包括串的定义、注册表设置、桌面及程序菜单快捷方式等;

4)  脚本,这是安装程序的源代码;

5)  安装文件,起始画面、License等;

6)  安装类型,默认有Compact,Typical, Custom三种;

7)  Media,生成打包文件,如果要做成自动解压类型:在工程工作区中选Meadia项,右键选特定Meadia属性,选Packaging项的第一个复选框。其它看着办。

3.       安装项目组件设置

4.       文件组(File Groups)设置

共同属性:

l         Share该文件组文件是否共享,即是否被其它程序使用。默认为NO。

l         Uninstall该项是否要被卸载,默认为YES。

添加要安装的文件,有下列属性需要设置。

可执行文件(App Excutables):源路径(用Insert File菜单操作);目标路径(Destination):更改属性设置,注意利用系统变量,如TARGETDIR

添加图标(Icon):

l         Icon File:含图标的文件;

l         Icon Index:在图标文件中的索引,如果图标文件只含一幅,将其设为0;

l         Install Conditions(File Groups):安装条件,在选择安装某文件组时安装该项;

5.       资源

l         资源中要设置的一些属性如上图所示

l         Start Menu->Programs->Startup(启动)(默认启动项)

l         要注意创建文件夹和快捷方式是不同的

以上就是要做一个安装文件的主要内容了,其它细节就不赘述了,下面是我在使用时总结的几个非常实用的技巧,我将它们归为FAQ,如果大家碰到什么问题不防提出来,一起来充实这个FAQ

FAQ

6.       反安装程序的制作

InstallShield6.3安装程序会默认记录卸载信息,再次运行安装程序(setup.exe)会自动执行反安装功能。

l         创建一个卸载快捷方式指向:<DISK1TARGET>\setup.exe就OK了。

7.       禁止反安装

InstallShield6.3做出的安装包自动带有反安装功能,有些人想去掉反安装功能,这样别人就不能通过控制面板中的“添加/删除程序”来删除安装的文件。当然我不主张这样做,但从技术上我可以告诉如何实现。

当执行完安装以后,在脚本最后加上以下内容即可

subKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID;                                               

       RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);         

       if (RegDBKeyExist(subKey) =1) then

              RegDBDeleteKey (subKey);   //删除注册表信息

       endif; 

       if(!ExistsDir(DISK1TARGET))then

              DeleteDir(DISK1TARGET,ALLCONTENTS);

//删除可以执行反安装功能的setup.exe所在的文件夹下所有文件

       endif;

8.       Installshield6.3制作出的安装程序,安装到最后拷贝文件那一步结束后出现:"DLL函数调用失败:USER32.MessageBoxA..."?

这是因为注册DLL文件失败导致。所以要安装的DLL文件如果不需自注册请将其Self-Registered属性选为NO。

本文地址:http://com.8s8s.com/it/it1485.htm