本来想在服务器上建立一个名为“升级文件”的文件夹,存放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。