中国计算机报1997年8月18日 总671期

用InstallBuilder制作Windows32位应用软件安装盘

 

  本文通过一个实例讨论如何借助于InstallBuilder生成一个32位PB应用的安装程序。实例的应用名设为LIBRARY.PBL,后台数据库管理系统(DBMS)采用Sybase公司的SQLAnywhere5.0。
  在制作安装盘时,安装盘的操作平台要和Instbldr.ini的配置保持一致。InstallBuilder提供了生成32位操作平台的安装盘的初始化文件(Instbldr.32),它包含了32位操作平台下可重用部件的基本内容,其内容你可以在以后根据自己的情况作相应增减。你只要将其改名为Instbldr.ini,就可以在32位平台上制作安装盘。
  在使用InstallBuilder时,你只要在配置文件中为每个安装文件指定路径,它就会自行处理。但InstallBuilder对32位的安装程序路径的处理不同于16位。在16位安装程序中,如果你为每个安装文件指定了路径,InstallBuilder就会生成一个过程(SetupProcedure),用以在用户的Autoexec.bat文件中追加上该安装文件的路径。在32位安装程序中,如果你为安装文件指定路径时,InstallBuilder会显示一个选择可执行文件的对话框,在此你可以指定该路径下运行的可执行文件。在安装时,Powersoft安装程序会将所有选择的可执行文件所要求的路径加到应用路径中去。
  具体做法是:
  1.为所有组件选取文件
  2.选取AddtoPath,在选择框中打钩
  3.点击位于AddtoPath选择框右侧的按钮,弹出AppPath对话框,该对话框列出了当前组件中的所有可执行文件。
  4.在AppPath对话框中选取需要加入路径的文件,然后点击OK按钮。
  例如:一个用户的应用在路径c: library下,你在AppPaths对话框中选择LIBRARY.EXE,Powersoft的安装程序就会把c: library加到应用路径的HKEY—LOCAL—MACHINE SOFTWARE Microsoft Windows CurrentVer
sion AppPaths LIBRARY.EXE
  5.对所有组件重复2至4步
  为了安装方便你可以使用可变路径变量。不同用户机器的目录结构是各不相同的,使用InstallBuilder的可变路径变量(也称符号变量———SymbolicVariables),可以将您的应用安装在不同目录结构的机器上。
  InstallBuilder使用以下几个可变路径:
  可变路径变量替换为
  Ν(base)基本组件的路径
  Ν(windows)windows的路径
  Ν(system)windows system的路径
  Ν(componentname)某一组件(名称为
  componentname)的路径
  在InstallBuilder中,用户可以在任何需要路径名的地方使用可变路径变量,Powersoft安装程序在安装时,将可变路径变量替换为相应的路径名。
  而后是创建可重用组件。可重用组件指的是PowerBuilder的运行模块(RuntimeDLLs)和具体DBMS客户端的运行模块,它们可被用于不同应用的安装。创建可重用组件的工作可以通过可重用组件窗口来完成。用户可以通过点击菜单项ActionsΛDefineReusableComponents...,进入可重用组件窗口。可重用组件窗口与InstallBuilder主窗口类似,对它的操作在许多方面也与定义应用组件相似。InstallBuilder将可重用组件定义在Instbldr.ini中。
  下面讨论一个32位PB应用安装盘所需的各种可重用组件,它们是PowerBuilder运行部件,数据库SQLAnywhere的部件,ODBC链接驱动器(及各种数据库的ODBC驱动器
,如:SybaseSQLAnywhere,dBase,Excel等)和NativeDatabaseDrives(及各种本地数据库产品的本地界面,如:ODBC,MSSQLServer,SybaseSQLServer)。
  InstallBuilder能帮你正确地配置这些文件和更新你的登记条目。以下对登记条目和更新.ini文件记录的讨论都假设你已将文件都复制到缺省目录下,如果你自己指
定目录的话对登记条目和更新.ini文件记录要作相应调整。下面的每一小节都包括一个32位的长名和一个短名作为缺省目录名。
  1、PowerBuilderRuntime(32-Bit)
  它们所在的缺省路径为c: pwrs sys32,长目录为c: ProgramFiles CommonFiles PowersoftShared。它们是运行PB应用所要求的。把它们安装于相同的缺省目录下,这将给你更新文件带来方便,同时也可避免用户在
有多个PB应用时,在机器上重复复制.dll文件。
  PowerBuilderRuntimedll所在的目录必须加到登记的应用路径中去(HKEY—LOCAL—MACHINE Software Microsoft Windows CurrentVersion 
AppPaths your—app.exe)。登记项目是Path,登记内容为C: your—a
pp—dir;c: pwrs sys32。

  如果你使用PBEnterprise开发环境,PowerBuilderRuntime(32-Bit)的文件总共23个:pbbgr050.dll,pbcmp050.dll,pbdpb050.dll,pbdse050.dll,pbdwe050.dll,pbhlp050.dll,pbidbf50.dll,pbitxt50.dll,pbnpc050.dll,pbnps050.dll,pbosc050.dll,pboss050.dll,pbroi050.dll,pbrtc050.dll,pbrte050.dll,pbrtf050.dll,pbshr050.dll,pbsmi050.dll,pbtyp050.dll,pbwsc050.dll,pbwss050.dll,pbreg32.exe,pblab050.ini(注:如果你用的是PBDesktop、Professional或只是部分安装了Enterprise,那么你可能找不到pbdpb050.dll,pbdse050.dll,pboss05
0.dll,pbsmi050.dll,pbnpc050.dll,pbnps050.dll,pbosc050.dll,pbwsc050.dll,pbwss050.dll等分布式PB组件)。
  2、SybaseSQLAnywhere(32-Bit)
  如果你的应用采用PB自己所带的SQLAnywhere数据库作后台,那么你要在此作引入如下登记条目和文件:
  SQLAnywhere的目录应置于应用路径中(HKEY—LOCAL—MACHINE Software Microsoft Windows CurrentVer
sion AppPaths your—app.exe)登记项目是Path,登记内容为C: your—app—dir;c: pwrs sys32;c: sqlany50 win32。
  这部分在.iniFile中应增加的条目为:
  1)File:odbc.ini;Section:SybaseSQLAnywhere5.0;Keyword:AutoStop;Value:yes
  2)File:odbc.ini;Section:SybaseSQLAnywhere5.0;Keyword:driver;Value:c: sqlany50 win32 wod50t.dll
  3)File:odbcinst.ini;Section:ODBCDrivers;Keyword:SybaseSQLAnywhere5.0;Value:Installed
  4)File:odbcinst.ini;Section:SybaseSQLAnywhere5.0;Keyword:Driver;Value:c: sqlany50 win32 reuse20 wod50t.dll
  5)File:odbcinst.ini;Section:SybaseSQLAnywhere5.0;Keyword:Setup;Value:c: sqlany50 win32 wod50t.dll
  6)File:wsql.ini;Section:SybaseSQLAnywhere5.0;Keyword:LangDLL;Value:c: sqlany50 win32 wl50ent.dll
  wsql.ini文件在c: windows system目录下,它是语言的动态链接库所要求的。因为你的应用大多为英语,而且在你的应用目录中已经建立了c: sqlany50 win32目录。这个条目也许是多余的。但如果用户没有这一文件你就不得不在某一个部分中加入它。
  登记条目:
  1)BaseKey:HKEY—CURRENT—USER;RegistryKey:SOFTWARE ODBC ODBC.INI SybaseSQLAnywhere5.0;RegistryItem:Driver;RegistryValue:c: sqlany500

 back.gif (1185 字节)