IE盒子

搜索
查看: 140|回复: 2

易语言如何自动更新(有服务器+公网ip)?

[复制链接]

3

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2023-3-1 14:36:49 | 显示全部楼层 |阅读模式
如题
回复

使用道具 举报

4

主题

18

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2023-3-1 14:37:00 | 显示全部楼层
太多现成的更新框架了。你可以拿别人现成的。
如果不愿意用框架,担心有问题,而且别人不提供源码或者源码你看不懂或者太复杂等等原因你可以自己写。
最简单的逻辑:
服务器安装HTTP服务器,无论是APACHE还是NGINX,不一定有80,域名没有备案都无所谓。
这样就能提供一个更新网址例如
https://你的域名或者服务器IP地址:88/更新版本.txt
https://你的域名或者服务器IP地址:88/最新版本.exe
等等
然后你易语言编写:
取HTTP。。。。。(你的更新版本.txt的地址)txt地址里面存放了最新版本的版本号。
例如你现在的版本写的是1.0.0,但是读取http返回是1.0.1,那么就下载最新版本.exe。然后删除自己,运行最新的exe。
当然删除自己的操作很容易被误杀。(当然基本上易语言写出来的360就喜欢杀,加个UPX又不管了,迷,或者有的时候不加没事加了就杀。。)所以你可以把启动软件的程序做成一个更新器
启动器.exe更新很少,或者不更新,检测到更新就去更新真正的软件
检测版本也不只是取HTTP那么一个方法。八仙过海各显神通,你哪怕有一个域名,然后设置DNS解析记录,本身A记录指向1.0.0.0,后续你更新版本之后改成1.0.5.25,数字变了,都可以。方法太多了。甚至可以就是每次启动都傻傻的去下载最新版。如果你不怕服务器带宽不够
回复

使用道具 举报

4

主题

14

帖子

23

积分

新手上路

Rank: 1

积分
23
发表于 2023-3-1 14:37:13 | 显示全部楼层
最简单的方法就是用虚拟空间,无需公网ip,且很多虚拟空间服务器提供专有的域名(虽然有点长),而且便宜,有些每年才额二十多块钱。
我用过的方法:
在虚拟空间中建立update目录,里面存放一个html文件和一个软件更新包。
html文件中包含一个序号,版本号,是否强制更新号,更新内容,下载地址。
序号:单纯的整数(1,2,2……),我在软件启动窗口中放了一个隐藏标签,标签的标题也是一个整数,当软件启动时,自动获取虚拟空间指定连接目录下update.html的源码,且解析出上述所有包含的信息,其中,用解析出的序号与软件主窗口隐藏标签的整数标题做对比,如果大于标签整数,则判定软件存在新版本,即自动下载更新或者弹出信息框提示更新。
信息框中包含:新软件版本号,更新内容,
如果用户点击更新,软件则按照解析出的下载地址直接下载或者打来浏览器下载(加一个可控的下载地址,是因为有的虚拟空间有流量限制,你可以把更新包放在蓝奏云,把蓝奏云更新包的分享地址提供给用户下载)。
其中,如果解析出的是否强制更新号为1(强制更新),则用户不可取消,必须更新到最新版本才能继续使用软件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表