




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用TigerInstaller实现自动升级功能理论篇软件的自动升级功能是一个非常实用的技术。对于C/S系统每次系统修改都要逐一升级客户端,这是一个繁琐的让人痛恨的工作,也是C/S系统经常被人抨击的一个痛处。即便是三层系统,在系统修改的时候也免不了要更新客户端。对于其他的单机软件,在现在互联网普及的环境下给软件增加一个通过互联网自动升级的功能也能给用户带来便利,同时提升软件的档次。要实现自动升级的功能在技术上有什么要求呢?第一,需要制作升级包。这个升级包还需要功能全面,简单的系统一般是直接更新一个客户端程序就可以了,但是实际复杂一点的系统都可能包含多个文件、注册表、ActiveX组件、COM/COM+组件、BDE/ODBC别名、升级的时候还可能要执行一些程序。这是自动升级功能中最复杂的部分,但是现在TigerInstaller已经支持生成功能完备的升级包了,而且这些升级具有可以和原来的安装融合在一起的功能,也就是说无论装了多少个/次升级包,卸载的时候都可以一次过卸载所有的对象,不需要对升级包进行逐一卸载。具体操作请参阅TigerInstaller的帮助文件。第二,需要从服务器获得最新的版本,下载升级包。这个有很多的实现方案,可以通过服务器的共享文件夹、FTP服务器、WEB服务器、或者自己写的服务器。我认为实用WEB服务器是最佳选择,管理方便,功能强大,我们可以通过脚本实现比如预定时间发布升级包、根据客户端的版本发布不同的升级包等功能,在后面的例子将会用简单的ASP脚本实现上面的功能。第三,更新主程序的问题。在自动升级的时候一般都是在主程序里获得最新版本并启动升级包进行升级。这样会带来一个问题,就是如何避免由于主程序在运行的时候不能更新造成的升级失败。在这里我使用了一个简单的办法,在启动升级包的时候把主程序的进程ID传给升级包,这样升级包就可以根据这个进程ID获得主程序的进程句柄,使用WaitforsingleObject函数等待主程序退出再执行升级操作,这样就不会有无法更新主程序的问题了。根据上面的技术分析,第一点已经由TigerInstaller实现了,第三点中升级包中根据进程ID等待主程序退出也已经在TigerInstaller中实现了,其他的部分我写了一个Delphi简单的控件来实现。下面是控件的属性和方法。属性/方法类型Version:String;属性软件的当前版本。VersionURL:String;属性取得最新版本的URL。DownloadURL:String;属性下载升级包的URL。LatestVersion:String;属性获取最新版本。Download:Boolean;方法下载升级包,并且执行升级。实战篇下载TigerUpdate控件包从下面的地址下载TigerUpdate控件包里面包含控件和一个范例程序,两者都包括源代码。/stuff/tigerupdate.rar控件的安装1.用Delphi打开TigerUpdate60.dpk或TigerUpdate70.dpk(分别在Delphi6和Delphi7亡-Tig亡rllpd日t亡BO.dpk,编译安装,如下图,14141©3CompileAddRemoveInstallOptionsContainsFiles PathContains+司Download E:WorkShop\Projects\TigerSetup\Compo闫TigerUpdate.pasE:WorkShop\Projects\TigerSetup\Compo闫TigerUpdateGO.dcrE:WorkShop\Projects\TigerSetup\Compo-_|Requires闫indv.dcpg]rtl.dcp1vcl.dcp2.点击Delphi的菜单"Tools->EnvironmentOptions.."进入EnvironmentOptions..对话框,在Library页面中把TigerUpdate控件所在的目录加入到LibraryPath中,如下图
3.安装完毕。编译测试程序打开TigerUpdate\Sample目录下的UpdateTest.dpr文件,编译出可执行文件UpdateTest.exe。生成原始安装程序1.1.打开Tigerinstaller,在左边对象树状图中右击我的应用软件节点,在弹出菜单上点击属性,如下图-InixiAL?空白方案向导 打开@〕H4 J保存生成测试1-1+退出②我的应用软件我的应用--B默认匡-话-InixiAL?空白方案向导 打开@〕H4 J保存生成测试1-1+退出②我的应用软件我的应用--B默认匡-话文1[…“(Bj…“(Bi…“(B-昌注/|…“属性(E) |剪切(创复制凶删妣粘贴②菜单4JSER名称亡默认包I类型可选包〔飢)j•…OHKEY_LOCAL_MACHINE-爭操作妣〕!•““(B复制完文件后执行!•“(B安装前执行!•“(B安装完成后执行i•“(B卸载前执行HE文件类型--囲ODBC…(B系统DSNi…(B用户DSN运行库MSSQL^I据库COM+组件(ftM)■没有可用的升级包]羽Tig亡rInstaller测试版050了11[我的应用软件]文件(巳编译安装程序选项帮助把产品名称改成“自动升级测试程序”如下图自动升釀测试程序屋性1.00公司名称产品名称版本发行者1.00发行者链接联丢人支持信息自述产品更新注册默认安装路径 <JROGRAM_FIUS沁自动升级测试程序□是升级包 0支持反安装“确定 X取消 t.更改图标2.2.在应用程序文件夹(即安装目录)的右击弹出菜单中点击添加->文件如下图
在弹出的打开文件对话框中选择刚才编译出来的UpdateTest.exe文件。3.3.右击UpdateTest.exe文件,在弹出菜单上点击“创建快捷方式”,如下图:4.4.把创建出来的快捷方式拖放到“用户的桌面”文件夹中,这样在安装完以后会在桌面上创建快捷方式方便测试程序。5.点击保存按钮保存这个项目为Sample.tpr6.点击生成,生成原始安装程序。
修改并编译新的UpdateTest程序打开TigerUpdate'Sample目录下的UpdateTest.dpr文件,修改TigerUpdatel组件的属性Version为1.01,保存项目,然后重新编译出可执行文件UpdateTest.exe。生成升级包l.打开刚才保存的Sample.tpr文件。2.点击菜单上的“新建->本项目升级包”创建Sample.tpr的升级包项目,如下图:3.3.在左边对象树状图中右击我的应用软件节点,在弹出菜单上点击属性,在项目属性对话框中把版本改成l.0l4.同样把UpdateTest.exe文件加入到“应用程序文件夹”中5.为了区分原安装程序和升级包,点击菜单“编译->生成选项”,在生成选项对6.点击“保存”按钮,把项目保存为SampleUpdate.tpr7.点击生成按钮生成升级包。发布升级包假设您的电脑上已经安装并且设置好了IIS。把TigerUpdate'Sample目录下的Update.asp文件复制到web站点的主目录下,然后把升级包重命名为Update.exe同样复制到web站点的主目录下。测试运行原始安装程序,安装完毕后,在桌面会创建一个UpdateTest的快捷方式,双击打开UpdateTest.exe,注意这时候Caption显示的是1.00,点击“检查版本”按钮,会显示“最新版本:1.01”,点击升级会出现下载进度窗口,下载完以后程序退出,升级包的安装程序启动,升级包安装好以后,双击桌面上的UpdateTest快捷方式,打开UpdateTest.exe程序,您会发现现在的版本已经是1.01了。其他在需要强制更新软件的情况下(比如某些C/S系统,为了保证数据安全,所有客户端的版本必须是最新的),可以在UpdateTest的主程序的Dpr文件加上下面的代码:(原来已经有了,把注释去掉即可)//以下的代码适合需要强制升级的情况withTTigerUpdate.Create(nil)dobegintryVersionURL:='/Update.asp?Command=Version';DownloadURL :='/Update.asp?Command=Download&Version=<VERSION>';Version:='1.01';if(LatestVersion>Version)andDownloadthenExit;finallyFree;end;en
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 领导力培养与年度人才发展计划
- 品牌与社会发展的协同作用计划
- 《四川省汉源县岩窝沟铅锌、磷矿勘探实施方案》评审意见书
- 特殊窗帘知识培训课件
- 第14课 向世界介绍我的学校-规划与探究-教学设计 2024-2025学年浙教版(2023)初中信息技术七年级上册
- webim与移动im 邮电大学课件
- 2025年长春货运资格证考试模拟题500道
- 2025年科学认识贝壳标准教案反思
- 2025年乐山货车资格证考试题
- 2025年邯郸货运从业资格证考试
- DB33T 2157-2018 公共机构绿色数据中心建设与运行规范
- 陕西、甘肃、青海、宁夏四省普通高中2024-2025学年学业水平选择性考试适应性演练(含答案)
- Unit3TheworldofScience大单元教学设计-高中英语
- 2024版体育赛事票务代理合同:赛事组织者与票务代理公司之间的合作协议3篇
- 医院陪护管理制度
- 中国计量大学《微机原理及其应用》2021-2022学年第一学期期末试卷
- 《车控操作系统功能软件架构及接口要求》
- 钣金车间安全培训课件
- 急性心力衰竭的紧急处理与护理
- 中国技能大赛-第45届世界技能大赛全国选拔赛“水处理技术”项目技术工作文件
- 无菌物品的储存与管理
评论
0/150
提交评论