Foxtable(狐表)用户栏目专家坐堂 → [原创]项目自动升级程序!


  共有3886人关注过本帖树形打印复制链接

主题:[原创]项目自动升级程序!

帅哥哟,离线,有人找我吗?
baicaocao
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:4854 威望:0 精华:0 注册:2012/4/20 8:42:00
[原创]项目自动升级程序!  发帖心情 Post By:2013/8/20 19:26:00 [只看该作者]

一直对项目的升级比较头疼。以前用的是别人的自动升级程序调用。后来我又弄了另外一个方法。可行!有兴趣的童鞋,可以看看哦。
第一步:软件打包问题,我使用的是Easy7z.exe这个软件。下面截图:
 


此主题相关图片如下:1.png
按此在新窗口浏览图片

此主题相关图片如下:2.png
按此在新窗口浏览图片

此主题相关图片如下:3.png
按此在新窗口浏览图片

好像一次只能上传3个文件。所以请看下楼。


 回到顶部
帅哥哟,离线,有人找我吗?
hrc11
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:285 积分:2868 威望:0 精华:0 注册:2011/8/30 17:40:00
  发帖心情 Post By:2013/8/20 19:31:00 [只看该作者]

学习


 回到顶部
帅哥哟,离线,有人找我吗?
baicaocao
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:4854 威望:0 精华:0 注册:2012/4/20 8:42:00
  发帖心情 Post By:2013/8/20 19:33:00 [只看该作者]


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

图片点击可在新窗口打开查看此主题相关图片如下:5.png
图片点击可在新窗口打开查看
设置完之后,就可以编译可执行文件了。我起的名字为update.exe

第二步:代码设置部分。

项目事件中:

BeforeOpenProject

 Dim ver As String = ApplicationPath & "文件名.exe"
 '首先检测本地是否存在update.dat,如果不存在.则提示错误.

 Dim update As String = ApplicationPath & "update.dat"

  '升级记录版本号文件。
    Dim txt As String = ApplicationPath & "tmp.txt"

'解压缓存文件。
    Dim autoupdate As String = ApplicationPath & "autoupdate.bat"

'升级批处理文件。
    Dim updatexe As String = ApplicationPath & "update.exe"

'自解压升级包
    Dim vl As String
    Dim tx As String = "http://域名/update.txt"

'服务器上版本标志。
    Dim upexe As String = "http://域名/update.exe"

'服务器上升级包

Dim myFileVersionInfo As System.Diagnostics.FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(ver)

 If FileSys.FileExists(update) Then
        '如果存在,则检测文件版本是否和文件版本一致.先对update文件进行解密.
        DecryptFile(update,txt,"加密字符串")
        vl = FileSys.ReadAllText(txt)
         Dim val() As String  = vl.Split(Chr(13) & Chr(10))       
        If myFileVersionInfo.FileVersion() <> val(0).Remove(0,4) Then
            '比对版本号是否一致,如果不一致.那么再自动升级文件是否存在
            MessageBox.Show(myFileVersionInfo.FileVersion() & val(0).Remove(0,4))
            If FileSys.FileExists(updatexe) Then
                MessageBox.Show("检测到升级文件,系统将进行升级.")
                Dim proc As new  Process
                proc.file = autoupdate
                proc.Start()
                '系统进程关闭.进行升级.
            Else
                MessageBox.Show("系统需要升级,将进行升级请不要中断.")
                 Network.DownloadFile(upexe, ApplicationPath & "update.exe" ,"" ,"" ,True, 100000, True)
                If FileSys.FileExists(updatexe) Then
                        MessageBox.Show("检测到升级文件,系统将进行升级.")
                        Dim proc As new  Process
                        proc.file = autoupdate
                        proc.Start()
                End If
            End If
        Else
            '如果版本号一致,那么比对服务器上文件信息.
            If Network.Ping(sheet1(3,1).Value,1000) = False  Then '如果无法接通
                    MessageBox.Show("升级服务器出现故障,请联系尚起网络科技客服QQ:2608704980")
            Else
                '如果能接通,那么读取服务器升级文件.
              '  Dim sup As String =               
                Network.DownloadFile(tx, ApplicationPath & "update.txt" ,"" ,"" ,True, 100000, True)
                If FileSys.FileExists(ApplicationPath & "update.txt") Then
                vl = FileSys.ReadAllText(ApplicationPath & "update.txt")
               Dim val1() As String  = vl.Split(Chr(13) & Chr(10))
                    If myFileVersionInfo.FileVersion() <> val1(0).Remove(0,4) Then
                        MessageBox.Show("检测到新的版本,版本号:" & val1(0).Remove(0,4) & "系统将自动进行下载,请不要中断下载!")
                        Network.DownloadFile(upexe, ApplicationPath & "update.exe" ,"" ,"" ,True, 100000, True)
                        If FileSys.FileExists(updatexe) And FileSys.FileExists(autoupdate) Then
                        MessageBox.Show("检测到升级文件,系统将进行升级.")
                        Dim proc As new  Process
                        proc.file = autoupdate
                        proc.Start()
                        '系统进程关闭.进行升级.
                        Else
                            MessageBox.Show("系统升级文件丢失,请重新安装本系统.")
                        End If
                        Else
                        MessageBox.Show("本版本是最新版本,不需要升级!")
                        End If
                    FileSys.DeleteFile(ApplicationPath & "update.txt")
                End If
            End If
        End If
    Else
        MessageBox.Show("升级文件丢失,请重新安装本系统.")
    End If


 回到顶部
帅哥哟,离线,有人找我吗?
baicaocao
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:4854 威望:0 精华:0 注册:2012/4/20 8:42:00
  发帖心情 Post By:2013/8/20 19:36:00 [只看该作者]

第三步:生产update.dat文件,update.txt文件。直接放个窗口文件了。。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:ftp.zip


 回到顶部
帅哥哟,离线,有人找我吗?
baicaocao
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:4854 威望:0 精华:0 注册:2012/4/20 8:42:00
  发帖心情 Post By:2013/8/20 19:37:00 [只看该作者]

第四步:autoupdate.bat的文件内容:一共两行:

ntsd -c q -pn foxtable.exe
update.exe

 


 回到顶部
帅哥哟,离线,有人找我吗?
baicaocao
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:494 积分:4854 威望:0 精华:0 注册:2012/4/20 8:42:00
  发帖心情 Post By:2013/8/20 19:41:00 [只看该作者]

第五步:

发布项目后,把autoupdate.bat文件,update.dat文件放入到项目根目录。

发布的时候,有个地方需要注意,请看图片。

这样,整个自动发布系统就完成了。大家只要把update.txt,和update.exe文件放到ftp服务器上,就可以进行自动更新啦。

而且,可以更新整个项目包哦。


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

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/20 19:54:00 [只看该作者]

顶啊!

 回到顶部
帅哥哟,离线,有人找我吗?
泡泡
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2628 威望:0 精华:0 注册:2013/3/4 20:21:00
  发帖心情 Post By:2013/8/20 19:55:00 [只看该作者]

关注

 回到顶部
帅哥,在线噢!
pyh6918
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1128 积分:11029 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2013/8/20 20:04:00 [只看该作者]

顶顶

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/8/20 22:32:00 [只看该作者]

以下是引用baicaocao在2013-8-20 19:41:00的发言:

第五步:

发布项目后,把autoupdate.bat文件,update.dat文件放入到项目根目录。

发布的时候,有个地方需要注意,请看图片。

这样,整个自动发布系统就完成了。大家只要把update.txt,和update.exe文件放到ftp服务器上,就可以进行自动更新啦。

而且,可以更新整个项目包哦。


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

这一页的信息foxtable中如何引用啊。。楼主这个方法好像有点复杂。。学习下


 回到顶部
总数 12 1 2 下一页