Foxtable(狐表)用户栏目专家坐堂 → 自定义升级问题


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

主题:自定义升级问题

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
自定义升级问题  发帖心情 Post By:2017/3/15 15:44:00 [只看该作者]

 

我用狐友的自动升级代码:

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=38980&authorid=0&page=0&star=1

 上传的文件名字乱码,并且不是指定的文件位置,不知道是哪里弄错了。。。 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20170315154339.png
图片点击可在新窗口打开查看

 

Public datafile As String = pname & ".zip" '包含最新升级数据的文件名

[此贴子已经被作者于2017/3/15 15:45:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 16:05:00 [只看该作者]

1、看在你本地生成的zip是否乱码。

 

2、看看 ftp1.utf8 = True '设置成true或false

 

3、上传路径是这个 ftp1.upload(dpath & datafile,upath & datafile,True)

 

弹出对应的值看看是否正确。

 

 


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/3/15 16:27:00 [只看该作者]

恩恩,我换成 把文件夹  ,上传路径 都换成 英文 的就可以了。

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/15 16:42:00 [只看该作者]

 如果本地生成的zip没问题,那就应该是你这里的问题

 

 ftp1.utf8 = True '设置成true或false


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/3/15 18:08:00 [只看该作者]

ftp1.utf8 = True '设置成true或false

 

设置成 false  也可以


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/3/16 10:13:00 [只看该作者]

    If publishdate < "2017-03-16 09:38" Then
        Dim zip As New zipFile

        Dim s3 As String = upath & datafile '服务器上升级文件中包含升级内容的文件
        Dim s4 As String = rpath & "\" & datafile '准备保存在客户端的包含升级内容的文件
        If FileSys.DirectoryExists(rpath) = False Then
            FileSys.CreateDirectory(rpath)
        End If
        ftp1.download(s3,s4,False) '静默下载并另存

        zip.Open(s4) '打开升级文件
        zip.Extractall(rpath) '全部解压到客户端运行文件夹
        zip.Close() '关闭升级文件
        FileSys.deleteFile(s4,2,2) '删除升级文件

        If filesys.DirectoryExists(npath) = False Then
            filesys.CreateDirectory(npath)
        End If

        ftp1.download(upath & "update.zip",npath & "update.zip",True) '静默下载并另存,update.zip见下文的"发布上传"
        zip.Open(npath & "update.zip")
        zip.ExtractAll(npath)
        zip.Close()
        FileSys.deleteFile(npath & "update.zip",2,2) '删除升级文件
        Dim s As String = rpath & "\update.bat" '建立升级批命令文件
        If filesys.FileExists(s) Then
            filesys.DeleteFile(s)
        End If
        filesys.WriteAllText(s,"@echo off" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"taskkill /f /im 零售经营系统.exe" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"echo Wscript.Sleep Wscript.Arguments(0) * 1000>Delay.vbs" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"Delay.vbs 3" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"del Delay.vbs" & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"move /y " & npath & "*.* c:\" & pname & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"start /c c:\" & pname & " /max " & ename & vbcrlf,True,Encoding.Default)
        filesys.WriteAllText(s,"del " & s & vbcrlf,True,Encoding.Default)
        Dim Proc As New Process '定义一个新的Process
        Proc.File = s '指定要打开的文件
        Proc.Verb = "Open" '指定动作
        Proc.Start()
        proc.WaitForExit

 

        Proc.File = "c:\" & pname & "\" & ename    问题在这里:版本升级后想要自动打开,这样好像不能实现,因为退出来了.....有什么办法可以实现吗?是不是可以用批处理打开文件?怎么做呢。。。
        Proc.Verb = "Open" '指定动作
        Proc.Start()

    End If   

[此贴子已经被作者于2017/3/16 10:15:02编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 10:22:00 [只看该作者]

 用这句代码打开的

 

filesys.WriteAllText(s,"start /c c:\" & pname & " /max " & ename & vbcrlf,True,Encoding.Default)

 

  或者你参考这些例子

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=62978&skin=0

 

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=87580&skin=0

 

 或者直接用

 

Application.Restart()

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/3/16 10:26:00 [只看该作者]

哦,原来之前的批处理已经有自动打开的代码,奇怪,我的为什么没有自动打开?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 10:33:00 [只看该作者]

参考7楼的方法去做,你那个可能不是很正确。

 

或者,屏蔽掉代码 filesys.WriteAllText(s,"del " & s & vbcrlf,True,Encoding.Default),然后看生成的bat批处理是否正确。

[此贴子已经被作者于2017/3/16 12:24:25编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2017/3/16 11:39:00 [只看该作者]

恩,我现在测试一下你说的屏蔽那段代码的

之前的代码有个问题,手动重启后,是有打开新版本了,但是只是启动界面,完了之后用户登录窗口没有弹出来,任何窗口都没有出来。进程里有。

 

直接打开 在publish 的exe 文件 没有问题,可以弹出用户登录的窗口。

[此贴子已经被作者于2017/3/16 11:47:11编辑过]

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