GeneralUpdate应用程序自动升级跨平台解决方案,支持国产操作系统。

108 阅读3分钟

背景:

前些年随着技术的发展逐渐兴起“一次编码到处运行”、“国产化”的概念那么跨平台就是各大技术争相主推的能力之一。具备跨平台的能力同时也需要自动升级的能力,GeneralUpdate 随之应运而生。

介绍:

1. GeneralUpdate 是什么?

GeneralUpdate 是一款基于.NET Standard2.0 MIT 协议开源的跨平台应用程序自动升级组件。

2. GeneralUpdate 提供什么?

组件功能
功能是否支持备注
断点续传支持单次更新失败时,下次一次启动时继续上一次更新下载更新包内容。(引用组件默认生效)
逐版本更新支持客户端当前版本如果与服务器相差多个版本,则根据多个版本的发布日期逐个更新。(引用组件默认生效)
二进制差分更新支持对比新老版本通过差分算法生成补丁文件。(引用组件默认生效)
增量更新功能支持相比上一个版本只更新当前修改过的文件,并且删除当前版本不存在的文件。(引用组件默认生效)
强制更新支持打开客户端之后直接强制更新。
多分支更新支持当一个产品有多个分支时,需要根据不同的分支更新对应的内容。
最新版本推送支持基于 Signal R 实现,推送当前最新版本。
多语言待验证也可将本组件编写为控制台程序,作为更新“脚本”。更新其他语言的应用程序。
跳过更新支持支持注入弹窗让用户决定是否更新本次发布,服务端决定强制时更新不生效。
相互升级支持主程序可更新升级程序,升级程序可更新主程序。
黑名单支持在更新过程中会跳过黑名单中的文件列表和文件扩展名列表。
OSS支持极简化更新,是一套独立的更新机制。只需要在文件服务器中放置 version.json 的版本配置文件。组件会根据配置文件中的版本信息进行更新下载。
回滚、备份支持更新之前会将客户端本地文件备份,如果客户端启动失败或崩溃则回滚覆盖。
驱动更新待验证更新之前会将驱动备份到本地,如果客户端启动失败或崩溃则回滚覆盖。
自定义方法列表支持注入一个自定义方法集合,该集合会在更新启动前执行。执行自定义方法列表如果出现任何异常,将通过异常订阅通知。(推荐在更新之前检查当前软件环境)
AOT支持支持 AOT 编译发布。

3.GeneralUpdate 支持什么?

.NET 框架
框架名称是否支持
.NET Core 2.0支持
.NET 5 ... to last version支持
.NET Framework 4.6.1支持
UI 框架
UI 框架名称是否支持适配贡献者
WPF支持JusterZhu
UWP商店模式下不可更新lindexi
MAUI目前仅支持 Android 平台JusterZhu
Avalonia支持JusterZhu
WinUI支持JusterZhu
Console支持JusterZhu
WinForms支持JusterZhu
操作系统
操作系统名称是否支持适配贡献者
Windows支持JusterZhu
Linux支持JusterZhu
Android支持JusterZhu
麒麟 V10(飞腾 S2500)支持
麒麟 V10(飞腾 FT-2000)支持姚圣伟
麒麟 V10(x64)支持
Ubuntu支持JusterZhu
华为欧拉(EulerOS-鲲鹏 Kunpeng)支持姚圣伟
龙芯(Loongnix LoongArch)支持Avalonia 中文社区(董彬 Rabbitism )
Apple Mac (M1)支持JusterZhu

4.仓库

名称说明仓库
GeneralUpdate自动更新github.com/GeneralLibr… gitee.com/GeneralLibr…
GeneralUpdate.MauiMaui 自动更新(安卓)github.com/GeneralLibr…
GeneralUpdate.Tools更新补丁包制作工具github.com/GeneralLibr… gitee.com/GeneralLibr…
GeneralUpdate-Samples使用示例github.com/GeneralLibr… gitee.com/GeneralLibr…