以文本方式查看主题

-  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=126325)

--  作者:湛江智
--  发布时间:2018/10/18 16:41:00
--  [求助]登陆窗口提示升级系统

如题

想实现如果系统有最新版本,窗口提示升级

登陆窗口打开后执行下面代码,

操作过程中系统升级后,再打开,提示报错见下图:

 

try

 

 

If FileSys.FileExists(ProjectPath & "update.txt") Then \'如果指定的文件存在
    FileSys.DeleteFile(ProjectPath & "update.txt",2,2) \'则彻底删除之
End If

 

    \'Network.DownloadFile("O:\\协同办公系统\\在线升级路径\\update.txt", ProjectPath &"\\update.txt" ,"" ,"" ,False, 100000, True)
    Network.DownloadFile(updatepath & "/update.txt",ProjectPath &"update.txt" ,"" ,"" ,False, 100000, True)
    Dim ud() As String = FileSys.ReadAllText("O:\\协同办公系统\\在线升级路径\\update.txt").Split("|")
    Dim Sdate1 As Date = Cdate(ud(0)) \'服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) \'服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate \'客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\\Bin\\Version.txt") \'客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 Then \'如果服务器程序发布日期大于客户端发布日期(大升级)
        \'升级代码
        Syscmd.Project.Update()
    ElseIf Sdate1 > Cdate1 Then \'如果服务器版本发布日期大于客户端发布日期(小升级)
        \'升级代码
        Syscmd.Project.Update()
    End If

 

catch ex As exception
    msgbox("不用升级")
End try

 


图片点击可在新窗口打开查看此主题相关图片如下:报错.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/10/18 16:46:37编辑过]

--  作者:有点甜
--  发布时间:2018/10/18 16:45:00
--  

如果是互联网升级,看看

 

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

 

如果是局域网(或本机),看看

 

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


--  作者:有点甜
--  发布时间:2018/10/18 16:47:00
--  

try
    
    Dim str2 As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str2.Split("|") \'获取文件内容
    
    Dim Sdate1 As Date = Cdate(ud(0)) \'服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) \'服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate \'客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\\Bin\\Version.txt") \'客户端Version.txt发布日期
    
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        \'静默升级代码 Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try


--  作者:湛江智
--  发布时间:2018/10/18 16:55:00
--  回复:(有点甜)如果是互联网升级,看看?ht...

大师,用下面代码,升级系统到最新后,重新打开,还是提示1楼 下载失败 窗口关闭后,才能进入登陆窗口

 

 

try
   
    Dim str As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str.Split("|") \'获取文件内容
   
    Dim Sdate1 As Date = Cdate(ud(0)) \'服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) \'服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate \'客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\\Bin\\Version.txt") \'客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        \'静默升级代码 Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try

[此贴子已经被作者于2018/10/18 16:58:04编辑过]

--  作者:有点甜
--  发布时间:2018/10/18 16:57:00
--  

1、弹出msgbox(UpdatePath)看看

 

2、看对应的路径下,有没有文件

 

3、你对应的路径,通过浏览器或者资源管理器,看能否访问


--  作者:湛江智
--  发布时间:2018/10/18 17:18:00
--  回复:(有点甜)1、弹出msgbox(UpdatePath)看看&nb...

路径没问题,里面有3个文件

下面代码不是写在项目事件里,是写在登陆窗口打开后事件里

 

try
   
    Dim str As String = FileSys.ReadAllText(UpdatePath & "/update.txt")
    Dim ud() As String = str.Split("|") \'获取文件内容
   
    Dim Sdate1 As Date = Cdate(ud(0)) \'服务器update.txt发布日期
    Dim Sdate2 As Date = Cdate(ud(1)) \'服务器Version.txt发布日期
    Dim Cdate1 As Date = PublishDate \'客户端发布日期
    Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\\Bin\\Version.txt") \'客户端Version.txt发布日期
   
    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        msgbox("有新版本")
        \'静默升级代码
         Syscmd.Project.Update(False,False)
    End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try

 


图片点击可在新窗口打开查看此主题相关图片如下:路径没问题2.png
图片点击可在新窗口打开查看

 

现在问题是 不断重复出现下图2个窗口:

1、提醒有新版本 窗口不能最前显示

2、确定 有新版本 窗口后,跳出窗口 提醒在线升级成功后,系统直接退出了



图片点击可在新窗口打开查看此主题相关图片如下:1有新版本.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/10/18 17:54:44编辑过]

--  作者:有点甜
--  发布时间:2018/10/18 18:12:00
--  
以下是引用湛江智在2018/10/18 17:18:00的发言:

 

现在问题是 不断重复出现下图2个窗口:

1、提醒有新版本 窗口不能最前显示

2、确定 有新版本 窗口后,跳出窗口 提醒在线升级成功后,系统直接退出了


 

[此贴子已经被作者于2018/10/18 17:54:44编辑过]

 

代码改成

 

    If Sdate2 > Cdate2 OrElse Sdate1 > Cdate1 Then
        MessageBox.Show("提示!", "提示",MessageBoxButtons.Ok,MessageBoxIcon.Warning,0, Windows.forms.MessageBoxOptions.ServiceNotification)
        \'静默升级代码
         Syscmd.Project.Update(False,False)

         Application.ReStart
    End If


--  作者:湛江智
--  发布时间:2018/10/18 18:45:00
--  回复:(有点甜)以下是引用湛江智在2018/10/18 17:18...
还是不行,强制自动更新或在计划里提醒更新都行,有这两种直接可用代码嘛? 是局域网系统升级
[此贴子已经被作者于2018/10/18 18:46:58编辑过]

--  作者:有点甜
--  发布时间:2018/10/18 20:47:00
--  
以下是引用湛江智在2018/10/18 18:45:00的发言:
还是不行,强制自动更新或在计划里提醒更新都行,有这两种直接可用代码嘛? 是局域网系统升级
[此贴子已经被作者于2018/10/18 18:46:58编辑过]

 

没看懂你什么问题。代码肯定是没问题的。

 

如果要测试升级,请发布生成exe以后再测试。