以文本方式查看主题

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

--  作者:东坡一剑
--  发布时间:2013/11/21 1:50:00
--  自动升级竟然要两次才能成功

在项目的Afterload事件中用如下代码自动升级

If Syscmd.Project.Update(False,False) = False Then

         \'其他代码
        Forms("主界面").show()
End If

 

发布以后如果将升级包及升级Txet文件上传以后遇到一个奇怪的现象:

1、输入登陆密码后出现一个下载窗口;

2、然后是一个提示窗口,内容为:升级已成功,重新打开项目。

但是项目并不会自动打开,需要重新点击快捷图标才行,可是1和2的窗口会重新出现!!

第三次点击快捷图标才会真正打开项目

此时发现项目已经成功升级

 

实在找不到问题处在哪里,请教问题出在哪里。


--  作者:Bin
--  发布时间:2013/11/21 8:42:00
--  
重新点击什么快捷图标? 项目图标吗?  现在自动升级是不会自动重新打开项目的了. 可能你第一次升级失败了.
--  作者:东坡一剑
--  发布时间:2013/11/24 22:25:00
--  
问题的关键是:现在我每次升级都要重复两次!最讨厌的是第一次完毕后它还要弹出一个对话框“在线升级已完成,将重新打开项目!”,完了又来一次,用户看起来就像一个笑话!不管换几个电脑,都是这个结果!而以前只要一次,而且可以自动打开项目,真不知道改成现在这个样子有什么好处。
--  作者:有点甜
--  发布时间:2013/11/24 22:30:00
--  
 无法看见你的情况,得你是否写了些什么代码。

 可能是你写了一次/两次update的代码。

--  作者:东坡一剑
--  发布时间:2013/11/24 22:36:00
--  

将所有代码输出到word检查了一下,只有一次。


--  作者:东坡一剑
--  发布时间:2013/11/24 22:38:00
--  
 

AfterOpenProject 的全部代码如下:

 

If Syscmd.Project.Update(False,False) = False Then

    If user.Type <> UserTypeEnum.Developer Then

        Dim n As Integer = GetConfigValue("Count",1)

        Dim Count As Integer = Registry.GetValue("HKEY_CURRENT_USER\\Software\\MyApp","Count",1)

        n = math.Max(n,Count)

        Dim Code As String = GetConfigValue("Register" & ComputerId,"")

        Dim Ok As Boolean

        If Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then \'如果注册码正确

            OK = True

        Else

            If n > 100 Then

                Forms("注册").Open()

                Code = GetConfigValue("Register" & ComputerId,"")

                If Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then \'如果注册码正确

                    OK = True

                End If

            End If

            If n > 1000 AndAlso Ok = False Then

                Messagebox.Show("您正在使用的产品已经超出试用次数!")

                Syscmd.Project.Exit()

            End If

        End If

        n = n + 1

        SaveConfigValue("Count",n)

        Registry.SetValue("HKEY_CURRENT_USER\\Software\\MyApp","Count",n)

    End If

    Forms("主界面").show()

End If

[此贴子已经被作者于2013-11-24 22:39:30编辑过]

--  作者:有点甜
--  发布时间:2013/11/24 22:45:00
--  
 你如果新做一个例子自动升级的话,是否也会出现这种情况?
--  作者:东坡一剑
--  发布时间:2013/11/24 22:49:00
--  
我试一下先
--  作者:atmetmicoo
--  发布时间:2013/11/24 23:18:00
--  
我的也是这个问题,非得要重复升级两次才会有效
--  作者:东坡一剑
--  发布时间:2013/11/25 0:28:00
--  

做了个例子,如果升级成功的话,Forms("主界面")的按钮数为零,结果发布后它干脆没有自动升级的功能了!

注明:放到ftp的Text中的文本内容为"2013/11/27",大家可以把在项目属性中把发布日期设置为文本内容之前的数据然后发布试试。真的搞不清楚是怎么回事。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目17.foxdb