自动升级的几点思路,仅供大家讨论、参考:
1、其实可以将版本号改为小数型,每次升级版本号不断递加,用SQL外部数据源,保存在您的服务器(开发者专用服务器,),用户对比这个版本号的大小来升级,这里先将系统命名为system.foxdb,以便后面的介绍。
2、再另外设计一个隐藏系统主界面的.foxdb文件(这里暂且命名为update.foxdb),使update.foxdb文件仅仅显示一个模式窗口,update.foxdb文件的AfterOpenProject事件设置FTP下载指定文件的代码,通过代码下载最新的到system.foxdb到项目文件夹,覆盖旧版本的system.foxdb(如果有图片、图标等更新的附件,在这里通过代码一并下载,更新文件不能包含update.foxdb),下载完毕,通过代码关闭update.foxdb,在update.foxdb文件的BeforeCloseProject事件中设置代码提示更新完毕并打开system.foxdb文件。
主要操作思路及原理:由于不关闭system.foxdb,直接通过system.foxdb来下载覆盖,会被windows操作系统禁止覆盖,因为system.foxdb文件是打开的,所以用了一个update.foxdb来切换,作一下升级过度,update.foxdb一次设计,不需要每次更新。所以,通过system.foxdb文件手动(或自动检测:判断网络及版本号)检测网络及新的版本并提示用户更新(当网络未链接时,自动更新方式不需要提示更新),得到确认后,打开update.foxdb并关闭system.foxdb,在update.foxdb进行自动下载、覆盖完毕以后,提示更新完毕,再通过代码先打开system.foxdb并自动关闭update.foxdb,让整个升级过程完全自动进行。
由于本人暂时没有精力研究,仅做纸上谈兵,理论上应该可行(曾经用易表做的工程造价管理系统,就是按此原理进行本地数据库更新),供大家讨论参考。
[此贴子已经被作者于2010-10-15 12:14:03编辑过]