应用程序的自动升级是一个很重要的功能。原理其实很简单,但实现起来却很有难度,尤其是找到一个持续性的稳固的方案,真是难上加难。
一般包而言,基本的模式是,包含两个程序, 一个是主程序,也就是除了升级功能以外的程序,另一个就是升级程序,常见的360,金山安全卫士都是这样。
在网上寻找成型的方案,发现一个AppHlp可用,对它做了简单的测试,特记录如下。
?
1、?在AppHlp下载其管理端工具AppHlp Admin
主页:?http://www.app-helper.net/
下载地址:?http://www.app-helper.net/bin/apphlp_admin.msi
?
2、?在AppHlp下载客户端的动态开发库。
它的开发库很简单,就是一个dll和几个头文件。
下载地址:http://www.app-helper.net/sdk/apphlp_sdk.rar
例子地址:http://www.app-helper.net/sdk/apphlp_exmaples.rar
?
3、?如果需要使用AppHlp来实现自动升级,则需要注册一个账户
?
4、?然后创建一个项目
需要注意的是,创建项目时必须要指定该项目的镜像目录,可以这样理解:程序的模块在服务器上有一个镜像,而这个镜像和目录关系是从本地映射过去的。
更新本地文件夹里面的模块,然后再将更新上载到服务器,这样新版本的镜像就存放到服务器去了,之后在客户端的程序就能得到升级。
?
5、?将程序发行版本编译好,更新到刚刚这个项目对应的目录里。
?
6、?在模块管理对话框里,引入这些模块,并对项目进行更新,上载模块
注意,项目一定要包含apphlp.dll这动态库,否则会弹出上面的错误。
?
7、?在程序代码里响应升级消息
在创建项目之后,编译新版本,提交到服务器之后,再运行程序,则可以得到通知消息,响应这个消息,具体的成品就是下面这样了。