以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  http升级遇到的2次升级问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150910)

--  作者:sloyy
--  发布时间:2020/6/10 16:25:00
--  http升级遇到的2次升级问题
用狐表的http方式自动升级,一直很正常,但是现在发现自动升级会重复几次才能完成,我查了一下,似乎是升级文件超过了某个数值,大概是20-30M ,ie就会有下载文件的限制,就要分段下载,所以会有几次重复升级.有什么办法解决吗?
--  作者:有点蓝
--  发布时间:2020/6/10 17:03:00
--  
没有这种事吧!和这个应该没有什么关系。

检查Syscmd.Project.Update是不是调用了多次。只能调用一次
升级代码所在的事件完整代码发上来看看。

--  作者:sloyy
--  发布时间:2020/6/10 17:26:00
--  
自动升级代码用了很多年了,应该不会有问题吧?
If TryConnectHost("www.baidu.com") = False  Then \'如果无法解析
    UpdatePath = "http://188.18.8.8/zfbt"
End If
If Syscmd.Project.Update(False,False) = False Then \'如果没有升级
    Forms("主窗口").open
    basemainform.visible=False  \'隐藏主界面
    Forms("用户登录窗").open
Else
    If filesys.FileExists(ProjectPath.Replace("project\\","") &  "住房补贴.exe") = True     \'MIS.exe是发布后项目的名称
        Dim Proc As New Process
        Proc.File =  ProjectPath.Replace("project\\","") &  "住房补贴.exe"
        Proc.Start()
    Else
        Dim Proc As New Process
        Proc.File = ProjectFile
        Proc.Start()
    End If
    System.Diagnostics.Process.GetProcessesByName("foxtable")(0).Kill
End If

--  作者:有点蓝
--  发布时间:2020/6/10 17:39:00
--  
估计是这段代码的原因,如果去掉,手工重新打开程序还会不会有问题?

    If filesys.FileExists(ProjectPath.Replace("project\\","") &  "住房补贴.exe") = True     \'MIS.exe是发布后项目的名称
        Dim Proc As New Process
        Proc.File =  ProjectPath.Replace("project\\","") &  "住房补贴.exe"
        Proc.Start()
    Else
        Dim Proc As New Process
        Proc.File = ProjectFile
        Proc.Start()
    End If
    System.Diagnostics.Process.GetProcessesByName("foxtable")(0).Kill

这个代码不管用了多少年,至少有2个问题
1、必须使用“可执行文件.exe”也就是上面的"住房补贴.exe"运行程序才能正常升级,如果使用foxtable.exe启动程序,可能会无法升级
2、这种用法会导致大版本更新的时候"住房补贴.exe"无法正常更新,同时理论上会和下面的kill有冲突的。