在线更新系统对于现代软件来说太重要了,这里介绍用一家加拿大公司出品的TrueUpdate构建你的升级系统.TrueUpdate是使用lua来应付复杂多变的升级业务。 升级简单流程是这样的:运行trueupdate客户端,下载升级脚本,执行脚本,脚本里面执行下载补丁。
不多说了,直接给出我的方案:
系统规划:
1.proj1 // 升级项目
sid1 // 升级项目id
client_script // 升级客户端脚本,基本不会变
current_version
version_id_current // 版本id
server_script_current // 升级服务端脚本,随着升级,不断更新
patch_current // 当前补丁,随着升级,不断更新
version1
server_script1
patch1
version2
server_script2
patch2
目录结构(ftp://192.168.1.134/true_update):
update_client.exe
sid_version_id_client_script.tu
sid_version_id_server_script.tu
sid_version_id_patch.zip
.......
proj2 (sid2)
....
升级流程:
程序启动;
if ( current_version < server_version )
{
调用update_client.exe;
执行下载sid_version_id_server_script.tu;
运行sid_version_id_server_script.tu;
下载补丁id_version_id_patch.zip;
current_version = server_version;
提示用户升级成功;
}
正常启动;
表结构:
create table proj
{
sid,
client_script,
version_id_current, // 版本id
};
create table version
{
sid,
version_id,
script_server,
patch
}
get_latest_version.aspx(client_sid)
{
select version_id_current from proj where sid=clent_sid;
return version_id_current;
}