一款基于 .NET 开源、跨平台应用程序自动升级组件

前言

今天大姚给分享分享一款基于 .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支持💖。

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

相关推荐
啸啸说2 小时前
1.图像的加载与保存
opencv·c#
yang_B6212 小时前
C# ISerializable 允许对象控制自己的序列化/反序列化过程
java·开发语言·c#
海盗12343 小时前
ScottPlot在WPF的基本使用和中文乱码问题
c#·.net·wpf
胡楚昊3 小时前
BUUCTF RE 看心情写(2)
开发语言·c#
第二只羽毛3 小时前
第四章 串
大数据·数据结构·c#
ejjdhdjdjdjdjjsl3 小时前
三角形缺陷检测,划痕检测和毛刺检测
c#
我是唐青枫3 小时前
C#.NET System.Threading.Lock 深入解析:新一代 lock、底层语义与使用边界
c#·.net
格林威4 小时前
工业相机图像采集处理:从 RAW 数据到 AI 可读图像,附basler相机 C#实战代码
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
Cosmoshhhyyy4 小时前
《Effective Java》解读第45条:谨慎使用Stream
java·开发语言·c#