以文本方式查看主题

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

--  作者:jyh7081
--  发布时间:2018/8/29 18:32:00
--  [求助]项目自动升级遇到的问题
1、升级提示:Cannot overwrite hidden file.
我按照论坛的方法去找隐藏文件,在Images,Reports等文件夹下都没有发现隐藏文件;
但在Attachments\\下找到个临时文件   ~WRL1791.tmp,删除后,重新制作升级包后不再报错。

2、升级后,重启,又提示有更新....
AfterOpenProject升级代码如下:
try     
Dim str As String = FileSys.ReadAllText("//xx.xx.xxx.xx/事务管理平台/update/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
    PopMessage("有新版本,请在系统维护更新!","提示", PopIconEnum.ok, 5)
    \'Syscmd.Project.Update(False,False)  \'静默升级代码    
End If
catch ex As exception
    msgbox(ex.message)
    msgbox("下载失败")
End try

3、然后在项目中新建一个窗口,用来显示升级信息:
Dim str As String = FileSys.ReadAllText("//xx.xx.xxx.xx/事务管理平台/update/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发布日期
\'msgbox(Sdate1 & " " & Sdate2 & " " & Cdate1 & " " & Cdate2)
e.Form.Controls("Label6").text = Sdate1 & vbcrlf & Sdate2
e.Form.Controls("Label7").text = Cdate1 & vbcrlf & Cdate2

4、重新制作升级包,升级后,重启。
情况如下:
a.提示有更新;
b.程序实际已更新,因为新建的窗口已经在项目中出现;
c.但是客户端发布日期Cdate1没有更正过来,见下图,因此仍提示升级。

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

以上情况是哪里原因?请老师指教!
谢谢!






[此贴子已经被作者于2018/8/29 18:41:58编辑过]

--  作者:有点甜
--  发布时间:2018/8/29 18:48:00
--  

2、这个代码执行了没有Syscmd.Project.Update?你不是注释掉了么?升级后提示升级成功了叫你重新启动了没有?

 

3、你升级包是自动生成的吗?update.txt你有没有手动修改过值?

 

如果升级成功后,PublishDate的值没有更改,看看你是否修改了项目的文件名,比如本来 test.foxex改成了aabbcc.foxex

 

 


--  作者:jyh7081
--  发布时间:2018/8/29 18:57:00
--  

1、是注释掉了,启动代码仅提示是否有更新。
另外有个按钮进行手动升级,按钮代码:Syscmd.Project.Update()
提示升级成功,也提示重启项目了;而且项目确实更新了;

2、是自动生成的,没有修改过;

3、我再看看文件名...
原始文件名“事务管理”;开发后的Publish内的文件名“xx团队事务管理平台”。
因为在菜单设置了标题;发布时设置了可执行文件名、标题、主程序名称,见下图。
给这有关系吗?

4、另外,怎样获取发布项目的版本号?这样就可以查询当前版本,知道升级了没有了。


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

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

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

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



[此贴子已经被作者于2018/8/29 21:02:37编辑过]

--  作者:有点甜
--  发布时间:2018/8/29 21:14:00
--  

去看你的project文件夹下的文件,把后缀名显示出来,看是不是有两个 .foxex 的文件,一个是旧的项目,一个是新的项目。项目名称不能换的,要和以前的一样。


--  作者:jyh7081
--  发布时间:2018/8/29 21:27:00
--  
只有一个。

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


--  作者:有点甜
--  发布时间:2018/8/29 21:46:00
--  

1、弹出 msgbox(UpdatePath) 看看升级路径是什么。

 

2、有没有可能你升级路径弄错了?(比如旧项目的升级路径是xxx,但你把升级包弄到了yyy)

 

3、不要直接测试旧项目了,你新做一个项目测试功能吧,把需要的信息全部弹出看一下。