以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  在线升级问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=184218)

--  作者:老蜗牛
--  发布时间:2022/11/28 23:11:00
--  在线升级问题
设置了在线升级,在线升级路径为IP地址,如  http://99.99.99.99/123/ ,update.text 的时间新于现用发布的版本,用PublishDate参数对update.text进行判断,也是确定需要更新的,可是始终无法正常进行更新,单独使用按钮执行    Syscmd.Project.Update()  ,就直接显示已经是最新版本,请问版主,这个是怎么回事?
--  作者:有点蓝
--  发布时间:2022/11/29 8:25:00
--  
发布一个版本,把publish复制到其它目录。然后更改些东西,把升级日期改比上次大,重新发布,把升级包放入升级目录里。
然后使用上一次发布的复制到其它目录的版本测试升级。

--  作者:老蜗牛
--  发布时间:2022/11/29 9:31:00
--  
这个方法试过了,不论是放到按钮,还是放到afteropenproject  都判断不到要升级
--  作者:有点蓝
--  发布时间:2022/11/29 9:36:00
--  
update.txt内容和运行的程序里的project\\bin\\Version.txt内容发上来看看
--  作者:老蜗牛
--  发布时间:2022/11/29 9:43:00
--  
project\\bin\\Version.txt   里面怎么就只有一个  2022-8-18   这个不是软件的版本号么
tex里面是  2022-11-28 00:00|2022-8-18  这样的

--  作者:有点蓝
--  发布时间:2022/11/29 9:46:00
--  
把publish目录改名为publish2,然后重新发布,在发布窗口把发布时间改为2022-11-28 01:00,重新发布,把新发布的升级文件上传到升级路径目录里。然后运行publish2里的程序
--  作者:老蜗牛
--  发布时间:2022/11/29 10:14:00
--  
还是不行,点了确认升级,就直接跳出来这么一个界面
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
Syscmd.Project.Update()判断还是新版本

--  作者:有点蓝
--  发布时间:2022/11/29 10:19:00
--  
点了确认升级 ----- 说明已经判断有升级了,才会弹出确认升级 。

就直接跳出来这么一个界面 ----------- 升级完毕当然就会自动进入程序啊

升级完毕后再执行Syscmd.Project.Update()肯定是最新版本了啊

--  作者:老蜗牛
--  发布时间:2022/11/29 10:31:00
--  
可是再次打开还是一样要升级,参考的代码是这样的:

If User.Type <> UserTypeEnum.Developer Then\'根据是否开发者,再检查升级
    Dim hc As New HttpClient(UpdatePath & "/update.txt")
    hc.SkipError = True
    Dim str As String = hc.GetData()
    If str.Contains("|") Then
        Dim ary() As String = str.split("|")
        Dim d As Date = ary(0)
        Dim dv As Date = ary(1)
        If PublishDate < d Then
            If MessageBox.show("发现新版本{" & d & "},是否升级?", "在线升级提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                If dv > ApplicationVertion Then
                    MessageBox.show("本次升级内容较多,请耐心等待" & vbcrlf & vbcrlf & "升级后需要【手动启动软件】!", "升级重要提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning)
                End If
                If Syscmd.Project.Update(False, False, True) = True Then
                    If dv <= ApplicationVertion Then \'小版本更新,可以用自动重启,大版本绝对不能用,会无限升级!
                        Application.ReStart \'升级成功后重启项目
                    End If
                End If
                Return 
            Else
                MessageBox.show("旧版程序运行过程中,可能会有报错,请尽快升级", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            End If
        Else \'无需升级,正常启动
        End If
    End If 
End If

我没有想明白的是,为什么对txt拆分以后对字符判断是需要升级的,但是Syscmd.Project.Update()始终判断是已经最新版本了

--  作者:有点蓝
--  发布时间:2022/11/29 11:05:00
--  
是使用“发布的exe”启动程序?还是以Foxtable.exe启动程序的?