以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- [求助] 远程升级 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=100315)
|
-- 作者:yupeng
-- 发布时间:2017/5/9 14:58:00
-- [求助] 远程升级
老师 您好
我想在项目打开之前就进行 远程升级 ,之前是写在 AfterOpenProject 事件里面,如果删除了表,升级时就出现错误。
试了一下把升级代码写在 项目 BeforeOpenProject 事件,结果出现了错误“未定义升级路径”,
请问老师升级代应该写在哪个事件里面,怎样用代码定义升级路径?
|
-- 作者:有点色
-- 发布时间:2017/5/9 15:10:00
--
你这个问题比较麻烦。foxtable的自动更新太脑残。
1、在beforeOpenProject事件判断是否需要升级
Network.DownloadFile("http://www.foxtable.com/download/80211/update.txt", "d:\\update.txt" ,"" ,"" ,False, 100000, True) Dim ary() As String = FileSys.ReadAllText("d:\\update.txt").Split("|")
msgbox(ary(0)) msgbox(PublishDate)
If PublishDate < ary(0) Then msgbox("不是最新版") End If
2、如果需要升级,你的beforeLoadOuterTable事件,就写代码 e.cancel = true 意思是不加载任何表格。
3、在AfterOpenProject事件,升级。
|
-- 作者:yupeng
-- 发布时间:2017/5/9 16:11:00
--
老师 就是要它自动升级
beforeLoadOuterTable事件 代码如下,发现不管它升不升级,都没有加载外部表,如果不升级的话就加载所有表,要怎样改。
Network.DownloadFile("http://119.23.33.1:8080/fz/update.txt", "d:\\update.txt" ,"" ,"" ,False, 100000, True) Dim ary() As String = FileSys.ReadAllText("d:\\update.txt").Split("|")
If PublishDate < ary(0) Then e.cancel = True End If
|
-- 作者:有点色
-- 发布时间:2017/5/9 16:14:00
--
试试改成这样
Network.DownloadFile("http://119.23.33.1:8080/fz/update.txt", "d:\\update.txt" ,"" ,"" ,False, 100000, True) Dim ary() As String = FileSys.ReadAllText("d:\\update.txt").Split("|")
If PublishDate < cdate(ary(0)) Then e.cancel = True End If
|
-- 作者:yupeng
-- 发布时间:2017/5/9 16:28:00
--
还是不行 在命令窗口测试是可以的
在判断里面加了一个 msgbox("不是最新版")
出现死循环,如图 此主题相关图片如下:qq截图20170509162533.jpg
|
-- 作者:有点色
-- 发布时间:2017/5/9 16:32:00
--
你不要在 beforeLoadOuterTable 写。
你有多少个表 beforeLoadOuterTable 就执行多少次的。
定义一个public变量,在beforeOpenProject得到结果,记录起来。
beforeOpenProject 你可以弹出 PublishDate 和 ary(0) 的值进行对比,看弹出的值是否正确。
|
-- 作者:yupeng
-- 发布时间:2017/5/24 11:56:00
--
老师 测试发现 PublishDate = 00:00:00 ,但是如果项目打开后,它的值才是日期。 此主题相关图片如下:截屏fsfeyuu图片.jpg
|
-- 作者:有点色
-- 发布时间:2017/5/24 12:35:00
--
那就读取txt文件
Dim Cdate2 As Date = FileSys.ReadAllText(ProjectPath & "\\Bin\\Version.txt") \'客户端Version.txt发布日期
|
-- 作者:yupeng
-- 发布时间:2017/5/24 13:23:00
--
老师 请问能不能用代码指定升级的路径?在AfterOpenProject事件升级代码之前指定路径。
If Syscmd.Project.Update(False,False) = False Then
End if
此主题相关图片如下:90343543253.jpg
|
-- 作者:cd_tdh
-- 发布时间:2017/5/24 14:04:00
--
自动更新确实不好用,期待那个老师弄个通用的处理办法来解决一下。
|