欢迎来到天天文库
浏览记录
ID:8801736
大小:223.50 KB
页数:7页
时间:2018-04-08
《利用tigerinstaller实现自动升级功能》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、利用TigerInstaller实现自动升级功能理论篇软件的自动升级功能是一个非常实用的技术。对于C/S系统每次系统修改都要逐一升级客户端,这是一个繁琐的让人痛恨的工作,也是C/S系统经常被人抨击的一个痛处。即便是三层系统,在系统修改的时候也免不了要更新客户端。对于其他的单机软件,在现在互联网普及的环境下给软件增加一个通过互联网自动升级的功能也能给用户带来便利,同时提升软件的档次。要实现自动升级的功能在技术上有什么要求呢?第一,需要制作升级包。这个升级包还需要功能全面,简单的系统一般是直接更新一个客户端程序就可以了,但是实际复杂一点的系统都可能包含多个文件
2、、注册表、ActiveX组件、COM/COM+组件、BDE/ODBC别名、升级的时候还可能要执行一些程序。这是自动升级功能中最复杂的部分,但是现在TigerInstaller已经支持生成功能完备的升级包了,而且这些升级具有可以和原来的安装融合在一起的功能,也就是说无论装了多少个/次升级包,卸载的时候都可以一次过卸载所有的对象,不需要对升级包进行逐一卸载。具体操作请参阅TigerInstaller的帮助文件。第二,需要从服务器获得最新的版本,下载升级包。这个有很多的实现方案,可以通过服务器的共享文件夹、FTP服务器、WEB服务器、或者自己写的服务器。我认为实
3、用WEB服务器是最佳选择,管理方便,功能强大,我们可以通过脚本实现比如预定时间发布升级包、根据客户端的版本发布不同的升级包等功能,在后面的例子将会用简单的ASP脚本实现上面的功能。第三,更新主程序的问题。在自动升级的时候一般都是在主程序里获得最新版本并启动升级包进行升级。这样会带来一个问题,就是如何避免由于主程序在运行的时候不能更新造成的升级失败。在这里我使用了一个简单的办法,在启动升级包的时候把主程序的进程ID传给升级包,这样升级包就可以根据这个进程ID获得主程序的进程句柄,使用WaitforsingleObject函数等待主程序退出再执行升级操作,这样
4、就不会有无法更新主程序的问题了。根据上面的技术分析,第一点已经由TigerInstaller实现了,第三点中升级包中根据进程ID等待主程序退出也已经在TigerInstaller中实现了,其他的部分我写了一个Delphi简单的控件来实现。下面是控件的属性和方法。 属性/方法类型 Version:String;属性软件的当前版本。VersionURL:String;属性取得最新版本的URL。DownloadURL:String;属性下载升级包的URL。LatestVersion:String;属性获取最新版本。Download:Boolean;方法下载升级包
5、,并且执行升级。实战篇下载TigerUpdate控件包从下面的地址下载TigerUpdate控件包里面包含控件和一个范例程序,两者都包括源代码。http://www.wisdomcube.com/stuff/tigerupdate.rar控件的安装1.用Delphi打开TigerUpdate60.dpk或TigerUpdate70.dpk(分别在Delphi6和Delphi7目录下),编译安装,如下图,先点击Compile再点击Install。2.点击Delphi的菜单"Tools->EnvironmentOptions.."进入EnvironmentOp
6、tions..对话框,在Library页面中把TigerUpdate控件所在的目录加入到LibraryPath中,如下图3.安装完毕。编译测试程序打开TigerUpdateSample目录下的UpdateTest.dpr文件,编译出可执行文件UpdateTest.exe。生成原始安装程序1.1. 打开TigerInstaller,在左边对象树状图中右击我的应用软件节点,在弹出菜单上点击属性,如下图把产品名称改成“自动升级测试程序”如下图1.2. 在应用程序文件夹(即安装目录)的右击弹出菜单中点击添加->文件如下图在弹出的打开文件对话框中选择刚才编译出来的
7、UpdateTest.exe文件。1.3. 右击UpdateTest.exe文件,在弹出菜单上点击“创建快捷方式”,如下图:2.4. 把创建出来的快捷方式拖放到“用户的桌面”文件夹中,这样在安装完以后会在桌面上创建快捷方式方便测试程序。3.5. 点击保存按钮保存这个项目为Sample.tpr4.6. 点击生成,生成原始安装程序。修改并编译新的UpdateTest程序打开TigerUpdateSample目录下的UpdateTest.dpr文件,修改TigerUpdate1组件的属性Version为1.01,保存项目,然后重新编译出可执行文件UpdateT
8、est.exe。生成升级包1.1. 打开刚才保存的Sam
此文档下载收益归作者所有