Delphi程序的自动升级功能的实现(AutoUpdate使用指南)
在UtiMnid组件下,利用auAutoUpgrader实现自动升级(已经测试通过)
第一步:下载AutoUpgrader.Pro.v4.6.4。
第二步:打开AutoUpgrader.Pro.v4.6.4下面的Delphi7目录,双击AutoUpgraderProD7.package文件安装,点install,安装。完成后,在工具面板上增加了一个UtiMnid组件。然后将Delphi7目录下面的全部文件都复制到delphi7的安装目录下面的bin目录中。
第一次发布程序时要做的事。
1、在已开发完成的程序中,在第一个启动的窗体上,放一个TauAutoUpgrader控件。
2.双击auAutoUpgrader1,在弹出的对话框中做以下设置:
(1)选择ByNumer,按版本号检查更新,在Numer文本框中填好程序版本号。注意,程序版本号的格式一定要是如:1.0.0.1这种格式,否则会出错。
(2)单击add按钮,添加本次升级文件的http下载地址,格式如:http://192.168.1.104:8080/update/project1.exe,千万别写错了。AutoUpgrader只支持http方式。不要填错。Upgrade method默认;可以在“Release Notes Message”里面写上本次的更新内容;
(3)单击“Export to info-file”按钮,输入文件名,生成一个后缀为.inf的配置文件,然后将这个配置文件上传到你的网站,和升级文件放在同一个目录,如http://192.168.1.104:8080/update。
(4)在auAutoUpgrader1控件的InfoFileURL属性里,输入你的网站里的那个inf文件,假如文件名为aa.inf,那么属性里的值就应该是http://192.168.1.104:8080/update/aa.inf,这儿也千万别搞错了。因为程序升级是靠这个文件来断定是否升级。
(5)把auAutoUpgrader1的autocheck设为true。
(6)自动检查并提示升级:方法是:在第一个启动窗体上,添加以下代码:
procedure TForm1.FormCreate(Sender: TObject);
begin
auAutoUpgrader1.CheckUpdate(true);//实际上就只加这一句。
end;
(7)手动升级:方法是,窗体上放一个按钮button,属性为“检查更新”,在按钮的onclick事件里面写上auAutoUpgrader1.CheckUpdate(False);
(8):在网站上建目录和端口设置。
必须和程序开发中设置的目录一致,否则升级时找不到文件。如开发中的目录是http://192.168.1.104:8080/update,那么网站上就必须设置update目录。还有一点,网站的端口也必须是8080。
(9):将升级文件和配置文件放在网站上已设置好的目录中,例如:update目录。如果文件很多,分不清哪些是升级的,哪些不是的,就全部放进去吧。呵呵。。反正现在硬盘够大了。如果你能分清楚就更好。
修改客户端后,怎么升级处理?
如果你的客户端因业务需要而需要进行修改,那么应在修改完成后,进行下面的修改和处理,才能实现自动升级。
1、对auAutoUpgrader1的修改。双击打开,修改ByNumer的版本号。注意必须比上一次的号高。如上一次是1.0.0.1,那么这一次就应该是1.0.0.2。
2、单击“Export to info-file”按钮,输入与开发时相同的文件名,生成一个后缀为.inf的配置文件,然后将这个配置文件上传到你的网站,和升级文件放在同一个目录,如
3、点OK按钮,然后全部保存Delphi文件,然后编译运行。
4、将新生成的配置文件和全部编译后的Delphi文件复制到网站上指定的目录中,例如http://192.168.1.104:8080/update。覆盖以前的文件。注意:这时不用打包。因为这儿需要的不是打包的程序文件,而是打包之前的散件(未打包的文件)。
5、OK。
6、以后的升级都如法炮制了。
Delphi程序的自动升级功能的实现(AutoUpdate使用指南)的更多相关文章
- NSIS:应用软件自动升级功能的探索与实践
原文 NSIS:应用软件自动升级功能的探索与实践 记得以前轻狂曾分享过使用第三方软件实现应用软件自动升级功能 (详细http://www.flighty.cn/html/soft/20110106_1 ...
- c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down
c/s程序版本自动升级的问题,如何判断client端版本号是否最新,然后从指定ftp服务器down http://blog.csdn.net/delphizhou/article/details/30 ...
- Android 一s个相对完整的自动升级功能实现代码
由于项目的需要最近做了一个关于Android自动升级的功能,下面将贴出Android手机客户端的完整代码.这段代码参考别的代码居多,由于不满足需求,所以自己仅仅改了一些需要变动的内容,其他功能都是按照 ...
- Android 一个相对完整的自动升级功能实现代码
由于项目的需要最近做了一个关于Android自动升级的功能,下面将贴出Android手机客户端的完整代码.这段代码参考别的代码居多,由于不满足需求,所以自己仅仅改了一些需要变动的内容,其他功能都是按照 ...
- 分享一个客户端程序(winform)自动升级程序,思路+说明+源码
做winform的程序,不管用没用过自动更新,至少都想过自动更新是怎么实现的. 我这里共享一个自动更新的一套版本,给还没下手开始写的人一些帮助,也希望有大神来到,给指点优化意见. 本初我是通过sock ...
- 【实用篇】Android之应用程序实现自动更新功能
我个人用的是友盟提供的自动更新组件,因此在这里只描述如何实用友盟提供的组件来完成程序的自动更新,步骤如下: 1.登录友盟官网,点击注册一个友盟账号. 2.注册成功后将会自动进入到添加新应用界面,选择添 ...
- Delphi Xe2 后的版本如何让Delphi程序启动自动“以管理员身份运行"
由于Vista以后win中加入的UAC安全机制,采用Delphi开发的程序如果不右键点击“以管理员身份运行”,则会报错. 在XE2以上的Delphi版本处理这个问题已经非常简单了. 右建点击工程,选择 ...
- ionic2 rc2 添加版本更新自动升级功能
不废话,直接上代码 首先安装四个必备的插件: cordova plugin add cordova-plugin-app-version //获取APP版本 cordova plugin add co ...
- 使用SimpleUpdater实现现有程序升级功能
项目:https://github.com/iccfish/FSLib.App.SimpleUpdater C/S程式一般需要部署在多台机器上,如果程式有变动,需要一台一台重新安装,相当麻烦,如果我们 ...
随机推荐
- HDU 1014 Uniform Generator 题解
找到规律之后本题就是水题了.只是找规律也不太easy的.证明这个规律成立更加不easy. 本题就是求step和mod假设GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choic ...
- macOS10.12部署sonarqube5.6.3
所需安装包已全部上传云盘:https://pan.baidu.com/s/1i5LvOCd 密码:s47e 1. 安装mysql 下载云盘的dmg包,一路默认安装,注意:一定要记住最后一步弹出的默认密 ...
- json字符串传值到后台出现乱码的问题的解决方法
1.原因:前台的编码是ISO-8859-1,后台的编码是UTF-8,所以会冲突 2.解决方法:先用ISO-8859-1解码成字节数组,再转成UTF-8编码格式 String strw = new St ...
- Unity3D引擎之渲染技术系列一
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者.国家专利发明人;已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D ...
- [转]Unity Shader 学习总结
1.先来一段单张纹理贴图的shader示例代码: // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClip ...
- Composer的Autoload源码实现2——注册与运行
前言 上一篇 文章我们讲到了 Composer 自动加载功能的启动与初始化,经过启动与初始化,自动加载核心类对象已经获得了顶级命名空间与相应目录的映射,换句话说,如果有命名空间 'App\Consol ...
- Java引用类型作为形参和返回值
一.什么是引用类型 在Java中引用类型包括三种:类.抽象类.接口. 二.引用类型作为形参使用 1.类作为形参 /** * 类作为形参,实际传递的是该类的对象 */ class Student { p ...
- Ant自己主动编译打包&公布 android项目
Eclipse用起来尽管方便,可是编译打包android项目还是比較慢,尤其将应用打包公布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自己主动编译打包了 ...
- group_concat函数导致的主从同步异常
group_concat函数导致的主从同步异常的问题总结 今天在处理一个group_concat函数导致的主从异常的问题,排查过程比较简单,不过第一次遇到这个问题记录一下排查的思路,后面如果再遇到其他 ...
- vptr
#include <stdio.h> class Point3d { public: virtual ~Point3d(){} public: static Point3d origin; ...