如何制作一个规范的安装程序
在我们完成一个应用系统设计开发后,工作并没有到此结束,我们还需为分发该应用系统而制作规范的安装程序。这是使应用软件实现产品化的重要一环。
在我们花费很长时间完成一个系统的设计与开发之后,就必须将系统分发到用户手中,为此必须制作一个规范的安装程序。一个规范的安装程序应该满足以下几个条件:
1.安装的一次性,也就是安装结束后,用户不必进行额外的设置就能正常使用该软件;
2.安装的简洁性,指的是安装程序根据用户选择的功能,仅安装所需的文件,不复制多余的文件,不添加无用的注册表信息;
3.安装的安全性,安装程序应该可对已有系统进行必要的检查,例如避免由于本系统的安装而导致已有系统的无法正常使用;具备卸载功能,即用户可以根据需要卸载软件,并且不影响其他系统的正常运行;
4.按照规范使用注册表,注册表是一个系统数据库,所有应用软件都可以使用它存储一些必要的信息,例如用户注册信息、系统配置信息、类的注册等,但如果不规范地使用注册表,就会导致系统性能的降低。
至于安装程序的外观,则可以自行设计实用、美观的界面设计。下面就如何实现上述条件,谈谈一般的实现方法。
一、实现安装的一次性
要实现安装的一次性,在安装过程中就必须在用户端建立和配置一个完整的系统应用环境,不管用户使用何种工具开发的软件,开发过程中都需要开发环境的支持。但是作为用户,他们没有必要安装这种开发环境,所以安装程序只需配置应用系统所需的环境即可。关于PowerBuiler应用程序的一些数据库配置、OCX注册等问题,将在后面两篇文章中详细进行介绍。
二、实现安装的简洁性
要实现安装的简洁性,就必须记录下用户安装需求(安装过程中的选择),根据需要安装并配置系统。现以InstallShield制作安装程序为例,程序提供三种安装方式:简洁、典型、定制。通过设置不同安装类型(定制类型用户可以选择)中包含的文件组来实现安装特定的文件。如果要实现注册表等其他信息,就必须使用Scripts程序实现,例如下面的程序就可以判断用户选择了哪些组件。
function DialogShowSdComponentDialog2()
NUMBER nResult;
STRING szTitle, szMsg;
STRING szComponent, szInfo;
NUMBER nzInfo;
STRING szString;
begin
if ((svSetupType != ″Custom″) && (svSetupType != ″ ″)) then
//如果用户没有选择定制类型,所以要安装的组件是事先知道的,所以可以直接进行相应的系统配置与注册。
return 0;
endif;
szTitle = ″ ″;
szMsg = ″ ″;
nResult = SdComponentDialog2( szTitle, szMsg, svDir, ″ ″ );
//如果用户选择了定制类型,所以就必须检查用户的选择,再进行相应的系统配置与注册。
szComponent = ″Manager Files″;
nResult = ComponentGetData( MEDIA, szComponent, COMPONENT—FIELD_SELECTED,nzInfo,
szInfo );
if nzInfo = 1 then
//这里写用户选择了″Manager Files″组件后的配置代码。
else
bManager = FALSE;
endif;
//依此类推,编写相应组件的处理代码。
return nResult;
end;
三、实现安装的安全性
在考虑安装的安全性问题时,应该对本应用系统的环境支持以及动态链接库共享问题有一定的了解。对于一个大型数据库信息管理系统,必然包含多个模块,例如MRPⅡ系统就可能包含生产计划管理、库存管理、BOM(物料清单)等模块,它们可能同时安装在一台计算机上,这就必须保证一套系统的安装与卸载不会影响到其他系统的正常运行。具体做法就是保证多个模块共同使用的文件是共享的,Windows系统会对这些文件进行引用计数,只有在这些文件引用计数为0时才会将它们卸载,系统的共享文件清单可以在注册表中的[HKEY—LOCAL—MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs]目录下找到。
四、规范使用注册表
大多数应用程序都使用了注册表来存储一些信息,但是也必须规范,这样才便于管理,也不会导致注册表的过分庞大,影响系统性能。一般应用程序的信息放置位置符合如下规范:[HKEY—CURRENT—USER\Software\(软件开发商名称)\(产品名称)\(信息类别)]或者[HKEY—LOCAL—MACHINE\Software\(软件开发商名称)\(产品名称)\(版本号)\(信息类别)]。
只有符合这些规范,你才能制作出一个专业的安装程序,它是使应用软件产品化的重要一步。