Foxtable(狐表)用户栏目专家坐堂 → [分享]狐表开发版本升级后客户端的全自动升级-补遗


  共有6652人关注过本帖树形打印复制链接

主题:[分享]狐表开发版本升级后客户端的全自动升级-补遗

帅哥哟,离线,有人找我吗?
shenyl0211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[分享]狐表开发版本升级后客户端的全自动升级-补遗  发帖心情 Post By:2013/7/12 16:30:00 [显示全部帖子]

原文见http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=27687&replyID=&skin=1
因超时不能更正,特在此补充说明。

狐表是管理系统开发的好工具,但辛辛苦苦开发的软件不能因为升级问题而挨用户的骂,所以,我写了,分享了,今天发现问题后也完善了基本升级代码(其余的自己扩充,如发布项目时顺便压缩项目、备份项目),希望对大家有所帮助。

由于系统进程foxtable.exe终止需要时间,所以,需更改项目管理.bat内容(否则,放在最前面的文件可能不能更新,出现“无效配置文件”错误),
即在 taskkill /f /im foxtable.exe 后添加3行延时命令:
echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs ‘用vbs脚本中的sleep实现延时
Delay.vbs 3 '延时3秒
del Delay.vbs
顺便在第一行插一句:@echo off

上述操作在bat文件中增加了4行。故需要更改开发系统版本升级后发布项目按钮内容
即将 For Index As Integer = 1 To Values.Length - 3 中的1改为5。

另外,在bat文件的延时命令后、在最后一句前可以插入任意多行的命令,主要由新版本更新的文件数决定(只需看publish文件夹中的修改日期)。

最后,AfterOpenProject事件
If s2<2000000 then'升级文件小于2Mb,属于一般性版本升级
2000000是可变的,取决于一般性升级的内容多少。

[此贴子已经被作者于2013-7-12 16:46:47编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2013/7/14 20:44:00 [显示全部帖子]

本帖和原帖已经彻底解决了自动升级问题,并提供了所有相关的源代码,大家只需根据自己项目的实际情况更改变量名而已。

 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2013/7/14 20:48:00 [显示全部帖子]

以下是引用rjh4078在2013-7-13 7:24:00的发言:

现在新版本出的这么勤  老版本开发的程序用自动更新升级以后却提示版本不对  这个问题才是最头疼的  说是说自动更新好  这还不如没有  搞得我们老大很不爽  看来还得转平台


请参照我的帖子更改,完全能够实现全自动升级,不要因噎废食。


 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2013/7/14 20:56:00 [显示全部帖子]

以下是引用zerov在2013-7-12 22:10:00的发言:
能不能请教大师给大家科普科普?图片点击可在新窗口打开查看
主要原理是下载升级文件后运行批处理命令,依靠批处理命令强行终止foxtable进程,然后将下载的、已经更新了的foxtable升级文件(具体升级了哪些文件,要看publish文件夹中的文件修改日期,点修改日期会自动按修改日期的升序或降序排序)拷贝到安装文件夹,如果不终止foxtable,是无法将下载的新文件覆盖正在运行的旧文件的。其它的详见代码注释,我认为已经注释得非常详细了。


 回到顶部