以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [建议]建议改正FTP上传、下载的文件时间  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38948)

--  作者:shenyl0211
--  发布时间:2013/8/11 19:31:00
--  [建议]建议改正FTP上传、下载的文件时间

本来想在服务器上建立一个名为“升级文件”的文件夹,存放publish文件夹下的所有文件,如果狐表新版发布,我们在新版基础上修改管理系统后发布时,就可以同时上传最新的系统文件至“升级文件”,而根本就不必考虑狐表到底更新了哪些系统文件。这样,客户端自动升级的时候也只需比较既有项目文件与“升级文件”的时间决定是否需要下载,如果需要下载,则在项目文件夹下自动创建“升级文件”文件夹,保存最新的系统文件,并运行批命令终止foxtable进程、移动“升级文件”下的所有文件到项目文件夹、重启项目文件。这就可以全自动解决狐友们最头疼的自动升级问题,也可以避免用户对升级问题的诸多不满。但现在发现用FTP上传、下载的文件时间不是真正的最后修改时间,而是上传、下载时的时间,没有任何用处,因为publish下的所有文件时间肯定都早于上传后的服务器上的“升级文件”中的文件时间,客户端至少存在一次假升级,而且每安装一次就假升级一次。故建议改正FTP上传、下载的文件时间——如果可能。至少帮助的下列解释是不对的 :GetFileTime返回ftp上指定文件最后一次修改的日期时间。

 

注:虽然我在论坛上曾介绍过如何自动升级,但如果:原来是A版本,现在为B版本,且B版本升级了2次,按理说B版的第2次不应该包含系统升级文件,但考虑到部分用户仍在用A版本,即B版本第1次发布后没有及时运行,错过了升级机会,所以为了保证所有用户能正常运行,每次升级都不得不包含系统升级文件。

 

所以,现在想实现全自动升级,只能利用包含系统版本日期的Version.txt和包含全部系统文件的压缩文件(体积缩小到1/3,为8Mb),与没压缩的部分升级差不多,因为一个foxtable.exe就达6.5Mb。


--  作者:jspta
--  发布时间:2013/8/11 20:35:00
--  

这种处理应该很容易,你想错了。按你的思路,能不能这样

1.建立开发版本号——A,B用于记录你开发的FOXTABLE版本

2.建立软件版本号——用于区分软件的版本

 

建立两种升级模式,即可解决。目前我自己就是这样做的。

开发版本更新都是让用户自己动手,目前就更新过一次,没那种必要经常更新。但是软件版本的话,基本一天可能N更新,更新到用户都麻木了,哈哈。


--  作者:有点甜
--  发布时间:2013/8/11 21:02:00
--  
 ftp的最后修改日期,是指在ftp中修改的日期,而非文件自身的修改日期。

 如果要获取文件自身的修改日期,需要先把文件下载下来,再通过代码读取文件信息。

 你可以这样做,上传项目的时候,同时上传一个小的txt文件,是否升级,就看这个txt自身最后修改的时间呗。
[此贴子已经被作者于2013-8-11 21:09:23编辑过]