以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [分享]狐表开发版本升级后客户端的全自动升级-补遗 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=37839) |
-- 作者:shenyl0211 -- 发布时间: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编辑过]
|
-- 作者:Bin -- 发布时间:2013/7/12 16:32:00 -- 感谢楼主无私奉献,好帖子必须要顶啊. |
-- 作者:狐狸爸爸 -- 发布时间:2013/7/12 16:43:00 -- 呵呵,虽然不懂,我也顶。 |
-- 作者:lsy -- 发布时间:2013/7/12 16:45:00 -- 何方大神?受凡身一拜! |
-- 作者:zerov -- 发布时间:2013/7/12 22:10:00 -- 能不能请教大师给大家科普科普? |
-- 作者:rjh4078 -- 发布时间:2013/7/13 7:24:00 -- 现在新版本出的这么勤 老版本开发的程序用自动更新升级以后却提示版本不对 这个问题才是最头疼的 说是说自动更新好 这还不如没有 搞得我们老大很不爽 看来还得转平台 |
-- 作者:blackzhu -- 发布时间:2013/7/13 8:43:00 -- 本地用户还不如用个U盘拷贝覆盖下.简单.远程的用用还行. |
-- 作者:shenyl0211 -- 发布时间:2013/7/14 20:44:00 -- 本帖和原帖已经彻底解决了自动升级问题,并提供了所有相关的源代码,大家只需根据自己项目的实际情况更改变量名而已。 |
-- 作者:shenyl0211 -- 发布时间:2013/7/14 20:48:00 -- 以下是引用rjh4078在2013-7-13 7:24:00的发言:
现在新版本出的这么勤 老版本开发的程序用自动更新升级以后却提示版本不对 这个问题才是最头疼的 说是说自动更新好 这还不如没有 搞得我们老大很不爽 看来还得转平台 请参照我的帖子更改,完全能够实现全自动升级,不要因噎废食。 |
-- 作者:shenyl0211 -- 发布时间:2013/7/14 20:56:00 -- 以下是引用zerov在2013-7-12 22:10:00的发言: 能不能请教大师给大家科普科普? 主要原理是下载升级文件后运行批处理命令,依靠批处理命令强行终止foxtable进程,然后将下载的、已经更新了的foxtable升级文件(具体升级了哪些文件,要看publish文件夹中的文件修改日期,点修改日期会自动按修改日期的升序或降序排序)拷贝到安装文件夹,如果不终止foxtable,是无法将下载的新文件覆盖正在运行的旧文件的。其它的详见代码注释,我认为已经注释得非常详细了。
|