这款基于.NET开源跨平台应用程序自动升级组件如何为?
摘要:前言 今天大姚给分享分享一款基于 .NET 开源免费、跨平台应用程序自动升级组件:GeneralUpdate。 项目介绍 GeneralUpdate 是一个基于 .NET Standard 2.0 的跨平台应用程序自动升级组件(桌面客户端自
前言
今天大姚给分享分享一款基于 .NET 开源免费、跨平台应用程序自动升级组件:GeneralUpdate。
项目介绍
GeneralUpdate 是一个基于 .NET Standard 2.0 的跨平台应用程序自动升级组件(桌面客户端自动升级解决方案),项目遵循 Apache 2.0 协议开源。该组件不依赖任何 UI 框架,旨在减少更新产生的资源消耗。通过提供一键启动示例,帮助开发者快速理解如何将自动升级功能集成到自己的应用程序中。
应用场景
GeneralUpdate 适用于需要自动更新功能的各类应用程序,包括但不限于:
桌面应用程序:如 WPF、WinForms、Avalonia、MAUI(仅支持 Android 平台)等开发的桌面软件。
控制台应用程序:需要定期或按需更新的后台服务或工具。
跨平台应用:支持 Windows、Linux、macOS 等多平台的应用程序更新。
支持功能
基础更新策略
功能说明
断点续传
更新失败后下次启动可继续下载未完成包,提升大文件更新稳定性。
逐版本更新
多版本差距时按发布日期顺序逐步升级,避免跳跃式更新导致兼容问题。
二进制差分更新
通过差值算法生成补丁文件,仅传输变更部分,节省带宽与时间。
增量更新功能
仅更新修改过的文件并删除废弃文件,实现最小化变更集。
强制更新
客户端启动即触发更新,确保用户始终使用最新合规版本。
分支与推送机制
功能说明
多分支更新
支持产品多分支并行开发,各分支独立配置更新内容。
最新版本推送
基于 SignalR 实时推送当前最新版通知,实现主动更新提醒。
用户体验与控制
功能说明
跳过更新
允许用户弹窗选择是否更新本次发布;服务端强制更新时此选项失效。
相互升级
主程序与升级程序可互相更新,形成闭环自洽的更新体系。
黑名单
更新过程中自动跳过指定文件或扩展名列表,防止误覆盖关键资源。
部署与运维增强
功能说明
OSS 极简更新
只需在服务器放置version.json配置文件,组件自动识别并下载对应版本。
回滚/备份
更新前本地备份,若启动失败或崩溃则自动恢复至上一稳定版本。
驱动更新
基于 GeneralUpdate.Drivelution 实现跨平台驱动自动更新(Win/Linux/macOS),含签名验证、权限管理等完整流程。
扩展与高级特性
功能说明
扩展管理
类似 VS Code 插件系统,支持目录管理、远程查询、依赖解析、事件通知等。
自定义方法列表
注入自定义方法集合,在更新前执行预处理逻辑,异常时订阅通知。
AOT 编译支持
支持 Ahead-of-Time 编译发布,适配高性能或受限环境需求。
身份认证
HTTP 请求中传递 token 进行资源访问控制,保障更新源安全性。
支持框架
.NET 框架支持情况
.NET框架名称是否支持
.NET Core 2.0
支持
.NET 5 ... to last version
支持
.NET Framework 4.6.1
支持
UI 框架支持情况
UI框架名称是否支持
WPF
支持
UWP
商店模式下不可更新
MAUI
目前仅支持Android平台
Avalonia
支持
WinUI
支持
Console
支持
WinForms
支持
支持操作系统
操作系统名称是否支持
Windows
支持
Android (.NET MAUI)
支持
麒麟V10(飞腾S2500)
支持
麒麟V10(飞腾FT-2000)
支持
麒麟V10(x64)
支持
Ubuntu 24.04.1 LTS
支持
龙芯(Loongnix LoongArch 3A6000)
支持
华为欧拉(EulerOS-鲲鹏Kunpeng)
支持
Apple Mac (M1)
支持
统信UOS (x64)
支持
项目效果演示
项目源码地址
更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。
GitHub开源地址:https://github.com/GeneralLibrary/GeneralUpdate
项目在线使用文档:https://www.justerzhu.cn/docs/doc/GeneralSpacestation
优秀项目和框架精选
该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。
