对于只有一个EXE文件的程序的自动升级,我的经验是:
一、没有必要区分局域网与广域网,都用统一的网络连接方法,包括检测新版本的方法
和下载新版本程序文件的方法,可以使用HTTP、也可以使用FTP,这两个细节你可以
自己考虑。
二、版本检测与更新部分程序逻辑:(可以考虑放在MainForm的Create
事件里面,始终注意Windows不许删除与覆盖正在运行的程序)
if 本程序文件名有NEW标识 then
begin
稍微延时//等待正常文件名的程序自行结束
复制本文件到正常文件名//覆盖先前内容
启动正常文件名程序
结束当前程序执行
end
else 删除有NEW标识的文件;
if 检测新版本成功完成 and 确实存在新版本程序 and 操作者同意立即升级 then
begin
下载新版本到本目录,文件名字加标识NEW
运行(NEW文件)
结束当前程序运行
end;