Foxtable(狐表)用户栏目专家坐堂 → 开发版Foxtable完整自动升级方案


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

主题:开发版Foxtable完整自动升级方案

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


加好友 发短信
等级:五尾狐 帖子:1016 积分:7135 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2013/7/30 17:24:00 [只看该作者]

不错,但运作起来还是比较复杂的,我做了个更简单的,根本不用什么VBS脚本,也不用先按win+r运行一下 regsvr32.exe zipfldr.dll. 但你的思路是值得参考的.
[此贴子已经被作者于2013-7-30 17:25:39编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/7/30 17:24:00 [只看该作者]

这句是不是有点问题?: 

                                  & "If fso.FolderExists(""d:\进口商系统" ") Then ws.Run ""cmd /c rd /s /q d:\进口商系统"",0" & vbCrlf _
                                  & "'解压文件" & vbcrlf _
[此贴子已经被作者于2013-7-30 17:32:38编辑过]

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2013/7/30 17:44:00 [只看该作者]

我觉得这种升级方法很不好。理由:
一、没必要全部上传、下载、升级。因为狐爸已经告诉我们哪些文件作了修改、哪些没有,因此升级包可以尽量的小,只包含那些文件修改日期为最新的(较上一版本日期)就可以了,毕竟有不少用户上网是很困难的——网速慢、甚至断网、下载时间长。如果这样升级,还不如让用户重新下载安装包安装或压缩文件手工解压。
二、该代码会删除整个管理系统文件夹。而大家知道,在自定义用户管理时,登录用户.txt中包含了本电脑登录过的用户,其中最常用的用户一般会人为地排在最前面,登录时根本不用选择用户名。一旦删掉,以后登录时就要重新输入用户名,对用户是不利的;特别是,修改过的模板文件也在这个文件夹里;还有用户自己定期导出的备份文件(导出为excel格式),或经过加工过的报表文件也会放在这里。但经过这样的升级,一切都玩完了。
三、即使修改代码不删除管理系统文件夹,但仍然会覆盖更新过的模板文件。
[此贴子已经被作者于2013-7-30 17:49:25编辑过]

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


加好友 发短信
等级:四尾狐 帖子:880 积分:9005 威望:0 精华:3 注册:2012/4/22 18:06:00
  发帖心情 Post By:2013/8/1 10:09:00 [只看该作者]

这个好东西,怎么不顶呢

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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/8/1 10:28:00 [只看该作者]

以下是引用在2013-7-30 14:56:00的发言:

升级整个publish目录的文件

xp系统需先按win+r运行一下 regsvr32.exe zipfldr.dll

需准备一下FTP服务器空间,然后在数据库中保存一下版本号以及升级规则,小升级的话用系统自带的升级,如果foxtable有版本更新,则可以用下面的升级方式

代码中的目录等可自行替换,我开发的系统要求用户都放在D盘下,大家不同目录的话可以在注册时将目录保存在注册表里面,然后在VBS脚本中读取目录

升级代码如下:


            SysFTPClient.DownLoad("\WebSite\SysUpdate\进口商系统\进口商系统.zip","D:\进口商系统.zip",True)
            If FileSys.FileExists("D:\进口商系统.zip") = False OrElse FileIO.FileSystem.GetFileInfo("D:\进口商系统.zip").Length = 0 Then Msgbox("升级文件下载失败,请重试!",64,"提示") : Return Nothing
            Dim strCode As String = "'结束进程" & vbcrlf _
                                  & "Set ws=createobject(""wscript.shell"")" & vbcrlf _
                                  & "ws.run ""taskkill /f /im foxtable.exe"",hide" & vbcrlf _
                                  & "Wscript.Sleep 1000" & vbCrlf _
                                  & "'清理旧文件" & vbcrlf _
                                  & "Set fso = CreateObject(""scripting.filesystemobject"")" & vbcrlf _
                                  & "If fso.FolderExists(""d:\进口商系统" ") Then ws.Run ""cmd /c rd /s /q d:\进口商系统"",0" & vbCrlf _
                                  & "'解压文件" & vbcrlf _
                                  & "UnZip ""d:\进口商系统.zip"",""d:\进口商系统""" & vbcrlf _
                                  & "fso.DeleteFile ""d:\进口商系统.zip"" " & vbCrlf _
                                  & "Msgbox ""系统完整升级成功,点确定后将重新启动系统"",64,""提示"" " & vbCrlf _
                                  & "Wsh.Run ""d:\进口商系统\进口商系统.exe"",1,false" & vbCrlf & vbCrlf _
                                  & "Sub UnZip(ByVal ZipFile,ByVal TargetDir)" & vbcrlf _
                                  & "    Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbcrlf _
                                  & "    If Not fso.FileExists(ZipFile) Then" & vbcrlf _
                                  & "        Exit Sub" & vbcrlf _
                                  & "    End If" & vbcrlf _
                                  & "    If Not fso.FolderExists(TargetDir) Then" & vbcrlf _
                                  & "        fso.CreateFolder(TargetDir)" & vbcrlf _
                                  & "    End If" & vbcrlf _
                                  & "    Set objShell = CreateObject(""Shell.Application"")" & vbcrlf _
                                  & "    Set objSource = objShell.NameSpace(ZipFile)" & vbcrlf _
                                  & "    Set objFolderItem = objSource.Items" & vbcrlf _
                                  & "    Set objTarget = objShell.NameSpace(TargetDir)" & vbcrlf _
                                  & "    objTarget.CopyHere objFolderItem,256" & vbcrlf _
                                  & "End Sub"
            FileSys.WriteAllText( environ("tmp") &  "\UnZip.vbs" ,strCode,False,Encoding.Unicode)
           
            Dim Proc As New Process
            Proc.File = environ("tmp") &  "\UnZip.vbs"
            Proc.Start

用过的朋友,好用吗?需要什么条件?

[此贴子已经被作者于2013-8-1 10:28:35编辑过]

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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/8/1 10:29:00 [只看该作者]

以下是引用yankunhao在2013-7-30 17:24:00的发言:
不错,但运作起来还是比较复杂的,我做了个更简单的,根本不用什么VBS脚本,也不用先按win+r运行一下 regsvr32.exe zipfldr.dll. 但你的思路是值得参考的.
[此贴子已经被作者于2013-7-30 17:25:39编辑过]

可以分享吗?


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


加好友 发短信
等级:一尾狐 帖子:479 积分:4505 威望:0 精华:0 注册:2008/9/4 14:40:00
  发帖心情 Post By:2013/8/1 13:21:00 [只看该作者]

好东西,无私奉献,顶上去

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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/8/1 13:33:00 [只看该作者]

蒙蒙胧胧中


 回到顶部
帅哥哟,离线,有人找我吗?
傻马难骑
  19楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:215 积分:1306 威望:0 精华:0 注册:2013/4/7 22:24:00
  发帖心情 Post By:2013/8/1 13:40:00 [只看该作者]

以下是引用yankunhao在2013-7-30 17:24:00的发言:
不错,但运作起来还是比较复杂的,我做了个更简单的,根本不用什么VBS脚本,也不用先按win+r运行一下 regsvr32.exe zipfldr.dll. 但你的思路是值得参考的.
[此贴子已经被作者于2013-7-30 17:25:39编辑过]

 

   什么简单的方法?可以分享一下吗?我也一直为开发软件升级而苦恼呢!


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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/8/2 9:47:00 [只看该作者]

飞大师,你的帖子还需要更明细的说明。


 回到顶部
总数 22 上一页 1 2 3 下一页