如何用VB制作在线升级?

如何用VB制作在线升级?,第1张

可以在服务器端放2个文件,一个假如是Update.ini,还有一个就是你的程序,假如是,在本地还要有一个文件,存放设置,假如是config.ini

Update.ini:

[update]

new=1.0.1

config.ini:

[config]

ver=1.0.0

代码:

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Sub Form_Load()

r = URLDownloadToFile(0,"", App.Path &"\Update\u.ini", 0, 0)

'下载好文件后,就开始读ini了

Dim ret As Long

Dim nowv, newv As String

nowv = Space$(1000) '事先定义读取值的字串宽度

'读出新版本和旧版本

ret = GetPrivateProfileString("update", "new", "", newv, 1000, App.Path &"\Update\Update.ini")

ret = GetPrivateProfileString("config", "ver", "", nowv, 1000, App.Path &"\Update\Update.ini")

'如果新版本和旧版本不同,则开始下载新版本

If nowv <>newv Then

r = URLDownloadToFile(0,"", App.Path &"\Update\1.exe", 0, 0)

End Sub

写了这么多,楼主是不是给点分,多给点

一楼说文件类型,显然是没有看题

看到二楼说的,我无语~~

1.一种针对分布式部署服务软件程序的在线升级方法,其特征在于,包括如下步骤:S101.将服务软件程序拆分为若干个应用子程序,然后将各个应用子程序分别以Docker应用容器的形式一一对应地运行在目标服务器中,其中,所述目标服务器预先安装有Docker应用容器引擎和Jenkins终端软件程序;S102.登录Jenkins服务器,并新建在线监控项目,在该在线监控项目中配置从程序版本管理服务器拉取升级程序代码的第一参数;S103.登录程序版本管理服务器,设置关联Jenkins服务器的第二参数;S104.程序版本管理服务器在收到来自软件开发端的服务软件程序升级包后,向Jenkins服务器发送程序升级 *** 作请求消息,其中,所述服务软件程序升级包封装有以应用子程序名命名的升级程序代码,所述程序升级 *** 作请求消息包含有在所述服务软件程序升级包中的所有应用子程序名;

S105.Jenkins服务器在收到所述程序升级 *** 作请求消息后,针对与所述应用子程序名对应的目标服务器,触发远程构建任务,并通过运行在该目标服务器的Jenkins终端软件程序,将从程序版本管理服务器拉取的且与所述应用子程序名对应的升级程序代码传送至该目标服务器;

S106.目标服务器在收到完整的升级程序代码后,启动Maven程序包,将该升级程序代码封装为Maven容器;S107.目标服务器将所述Maven容器的镜像推送到本地Docker私有库中,完成对与所述应用子程序名对应的Docker应用容器镜像的更新;S108.关机重启目标服务器,启动Docker应用容器引擎,从所述Docker私有库中获取与所述应用子程序名对应的Docker应用容器镜像,然后重新以Docker应用容器的形式运行应用子程序,完成在线升级。

2、使用Http在线自动升级程序。

在VCKBase看到一个是使用FTP的,想到FTP需要用户名密码,许多程序如KFW防火墙都能监看到程序发送的数据包,为防止密码泄露,故自己选用Http来做更新。我的思路是用命令行传递程序名称、版本号和Update.ini配置文件的URL。

然后是查找可用的更新,先通过ChttpFile将Update.INI文件下载到系统临时目录下,然后调用GetPrivateProfileString读取网上最新的版本号以及要更新的文件,判断是否需要更新

方法一:.主程序启动后,连接到服务器,判断有没有最新版本,如果有,启动一个升级程序后自己退出,由升级程序下载最新exe或者更新文件,替换到安装目录里,然后升级程序再启动主程序后自己退出,至此完成。

方法二:.先启动升级程序检查有没有最新版,如果有,下载最新的文件替换,然后再启动主程序。

方法二总是要连接服务器检查,而方法一不一定总去连接服务器,看你怎么考虑了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8103257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存