最近有一个项目是c/s模式的,必须制作安装包,已达到客户使用的简单化。对于我一个以前没有做个安装包的人,在网上找了一些资料,加上自己的一点实践,终于做好了。
好在一开始就有了一个概念,制作安装包可以使用InstallShield,以前觉得这玩意神乎其神的,其实也没什么了,多查资料,多实践就好了。再一次验证了我的一个观点:对于我们开发者而言,知道某种技术或者说工具的用途和概念,比我们知道怎么用他更有益。因为技术和工具太多,我们不可能一次性全部把他们全部学会,也没必要,只有当我们需要做一些事情的时候,我们知道某种东西可以更加方便的实现我们的需求的时候,我们再去学他,这样就事半功倍了。
呵呵,扯了大半天。开始讲述一下大概过程和涉及到的关键东西吧
1、当然是下载一个InstallShield安装一下咯,我的是InstallShield 2010 Premier Edition with version 16
2、新建一个项目吧,这里我们新建一个Windows Installer下的InstallScript MSI Project,至于每个项目的区别就网上查资料看看了。输入项目名称,选择存储路经,确定ok
3、工具栏下面有三个选项卡,分别是Start Page、Project Assistant和Installation Designer。其中Project Assistant是一个向导式的安装包制作流程,可以完成基本的打包等工作。Installation Designer则是更加具体,功能更加强大的安装包制作方式,可以采用脚本的方式控制安装步骤的执行。我们可以采用Project Assistant和Installation Designer相结合的方式来完成这次制作过程
4、在Project Assistant页面中的下方选择“Application Information”,输入一些软件的基本信息;选择“Installation Requirements”设置一些安装的环境需求,这里没设置;选择“Installation Architecture”设置一下文件的结构,这里我们新建了三个文件夹,分别是Server、Client、Doc,分别存放服务器、客户端和文档内容。这里设置的对应Installation Designer下的Organization下面的features,把Features下面的三个子项更改为Server、Client和Doc;回到“Project Assistant”页面,选择“Application Files”,可以设置每个文件夹下面所包含的内容,这里我们不采用这种静态的方式,因为如果这里设置了,不管你选择只安装服务端或者客户端等,都会把所有文件都拷贝到安装目录下,所以我们采用脚本的方式动态加载需要的文件;当然采用Project Assistant也可以设置注册表等操作,但是后面的操作,我们基本上都采用脚本控制
5、选择Installation Designer页面左边树状栏里选择Behavior And Logic下面的InstallScript,新建一个Script File,系统自动命名为Setup.Rul,这个名字不要更改。在代码编辑区的上面我们可以看到有一个函数生成帮助,可以自动为项目生成一些安装脚本。可以自己试试。下面我把整段代码贴上来,然后对重要的地方进行解释
解释部分:
a、首先定义了一些局部变量
STRING psvSQLsvr, psvSQLusr, psvSQLpwd;
BOOL bvWindowsLogin;
因为本安装程序需要sql server数据库的支持,所以以上全局变量用来保存连接数据库信息
b、申明自定义函数
prototype number CreateDataBase(STRING,STRING,STRING);//创建数据库
prototype number SQLLogin(); //定义登录函数
c、函数OnBegin中
if(!MAINTENANCE)then
SdLicense2 ("License", "", "", SUPPORTDIR ^ "license.txt", FALSE);
endif;
用来显示软件的协议,其中license.txt添加到SupportFile中,操作Behavior And Logic->Support Files/BillBoards,在SupportFiles下的第一个Language Independent右边插入license.txt
利用注册表检测软件依赖的环境是否安装
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);//设置注册表根
if (RegDBKeyExist ("SOFTWARE//Microsoft//.NETFramework") < 0) then //判断注册表项是否存在
if(LaunchAppAndWait (SRCDIR^"dotnetfx20.exe","", LAAW_OPTION_WAIT)<0)then//运行程序
MessageBox ("You haven't installed dotnet framework yet! ", INFORMATION);
abort;
endif;
endif;
d、函数OnFirstUIBefore中
if (FeatureIsItemSelected(MEDIA, "Server")=1) then
判断是否选择安装服务器,这里跟前面设置的feature相关,其中“Server”就是feature的名字
nResult = SQLLogin();
调用自定义函数SQLLogin
listStartCopy = ListCreate( STRINGLIST );
创建列表
ListAddString(listStartCopy,"Customer Information:",AFTER);
往列表中添加信息
nResult = SdStartCopy( szTitle, szMsg,listStartCopy);
根据开始拷贝需要的文件
ListDestroy(listStartCopy);
销毁列表
e、在函数OnFirstUIAfter中
我们这里的文件拷贝都放在此函数中,根据选择安装的feature动态的拷贝所需文件
CopyFile(szSrcFile5, TARGETDIR^"icon//*.*"); //拷贝目录下的文件
RegDBSetKeyValueEx(szKey, "VALUE1", REGDB_STRING, "wHpb9E6JNaQ=", -1); //写注册表
FindAllFiles(TARGETDIR^"Server", "*.exe", szDocFile, RESET); //查找目录下的文件
AddFolderIcon(FOLDER_PROGRAMS^"EstartManage//Server",szDocFileName, szDocFile, "", TARGETDIR^"icon//server.ico" , 0 ,"" , REPLACE ); //添加快捷方式
CreateDataBase(psvSQLsvr,psvSQLusr,psvSQLpwd); // 调用自定义函数,创建和 优化数据库
SdFinishEx(szTitle, szMsg1, szMsg2, szOption1, szOption2, bOpt1, bOpt2); //显示复选框
LaunchApp ( WINDIR^"Notepad.exe" , TARGETDIR^"README.TXT" ); //显示readme文件
然后就是创建卸载快捷方式
脚本中还涉及到多种目录的表示方式,具体理解请参考代码
6、发布
a、可以在User Interface下的Dialogs下的Skins设置安装界面的样式
b、选择工具栏中的光标图标制作光盘
7、尾声
好了,制作安装包的过程就差不多这些。文中基本涉及到制作安装的所有基本知识了,如果需要深入,请网上找资料吧。感谢很多网友提供的学习资料。希望对你有所帮助,如有任何疑问或者错误欢迎交流
分享到:
相关推荐
installshield制作安装包步骤详解 文档说明的非常详细,有截图参考, 即使从来没有使用过installshield的安装步骤可以完整制作安装包
InstallShield .NET应用安装包制作指南,对安装包集成数据库安装,配置文件安装配置提供详尽的实例。
Installshield2008制作安装包详解(结合自己做的一个项目)
文档中通过三个虚构的实例详细介绍了使用InstallShield制作安装包的过程,并在附件中收集整理了部分网上流传的文档,对学习使用InstallShield工具制作安装包有一定的参考价值
Installshield 8.0制作安装包
Installshield 12 安装包制作工具 ,文档很详细!【图文并茂】
看大家都在找InstallShield 2009 Premier SP1 安装包制作的说明,下午没事给写了下,希望帮助有需要的朋友
installshield是当前最流行的制作安装包的软件,此文档介绍j2ee项目制作exe安装包的过程
VC++6.0安装包制作工具,用于发布自己开发好的程序。该InstallShield是专门为Microsoft Visual C++6定制的,所以从Visual C++6开发环境中直接运行InstallShield更快捷方便。 当用户用Visual C++6调试好应用程序后...
InstallShield X对于任何平台,操作系统都是全面一体化的安装制作解决方案,Device InstallShield X 能够让开发者很容易地制作WINDOWS安装程序(MSI),InstallScript(安装程序的脚本语言)或交叉平台 型安装...
InstallShield安装包制作的安装程序解压工具
InstallShield2008 驱动安装包制作,可以制作安装驱动程序,非常详细
用InstallShield制作数据库软件安装包,PDF格式。
软件安装包制作工具installshield 2020 R1的安装教程-附件资源
Installshield2008制作安装包详解(结合实际项目).doc
InstallShield 12安装包+keygen.exe part14
介绍制作 Base MSI Preject及 InstallScript MSI Preject 安装包
InstallShield是由同名的公司制作的一款可以制作安装程序的开发包。该公司自从2004年被Macrovision所购并之后,InstallShield产品纳入Macrovision的FLEXnet产品系列,因此在原名前冠上FLEXnet而成为FLEXnet ...