【转】国产操作系统对 Avalonia 的支持情况
转自:豆包AI
Avalonia 在国产信创系统属于「可用、成熟、已有大量落地项目,但不是开箱零调」,是 .NET 信创桌面方案里最优选;Avalonia 12 正式原生支持龙芯 LoongArch64
对比:Qt Bridge for C# 目前 Beta,信创落地案例极少;MAUI 不适合国产桌面。
✅ 操作系统支持(主流信创 OS)
- 银河麒麟 V10 / V10 SP1(桌面版):最成熟,政企项目落地最多,X64、ARM64(飞腾)都有大量商用项目跑 Avalonia;服务器版无桌面环境不能跑 GUI
- 统信 UOS V20 专业版:大量项目验证,DDE 桌面,X11 模式稳定;Wayland 会多出一些兼容坑(剪贴板、窗口拖拽)
- 中科方德、LoongOS(龙芯配套系统):支持,LoongOS + 龙芯 3A6000 + Avalonia12 官方合作适配完成
底层原理:Avalonia 本身不直接适配操作系统,依赖 .NET Runtime 对该平台的支持,国产厂商(龙芯、飞腾)已经提供.NET8/.NET10 原生运行时包
✅ CPU 架构支持(信创五大主流芯片)
- 兆芯 / 海光(X64):⭐⭐⭐⭐⭐ 几乎无适配难度,和普通 Linux 一致
- 飞腾 / 鲲鹏(ARM64):⭐⭐⭐⭐ 成熟,很多政务软件在用,打包发布指定
linux-arm64 - 龙芯 LoongArch64(3A5000/3A6000):⭐⭐⭐⭐⭐ Avalonia12 官方完整支持(Avalonia 官方博客官宣,龙芯团队联合适配),Avalonia11 只能社区自行编译,不推荐生产使用
- 申威:社区实验性支持,不建议商用项目选用
⚠️ 国产系统上最常见坑(项目落地必处理)
- 中文字体方块(最高频) 国产系统默认缺少 C# 应用默认回退字体,需要在代码内显式设置字体回退列表(文泉驿、Noto CJK、鸿蒙黑体),或者打包内置字体。
- 系统依赖库缺失
- 银河麒麟:
libgl1-mesa-dev libgbm-dev libinput-dev libgudev-1.0-dev - 统信 UOS:额外需要
libx11-dev libxi-dev
- 银河麒麟:
- Wayland 兼容性 优先用 X11 会话登录;UOS、麒麟 Wayland 下剪贴板、文件拖放、窗口事件容易异常
- 国产 GPU(景嘉微 JM 系列) Skia 渲染在老版本 Avalonia 有文字重叠、渲染瑕疵;升级 Avalonia 新版本 + 更新显卡驱动可以缓解GitHub
- 剪贴板 / 文件拖拽 bug:UOS 下多文件复制粘贴存在已知 issue,需要单独兼容处理GitHub
✅ 打包方式(信创交付推荐)
优先 .NET NativeAOT 单文件发布,不依赖目标机器预装.NET,直接把 runtime 打进包,大幅降低现场部署依赖问题; 发布时按架构分别打包:linux-x64 / linux-arm64 / linux-loongarch64,一套业务代码,多架构包。
🆚 信创场景 Avalonia vs Qt Bridge for C#
表格
| 维度 | Avalonia | Qt Bridge for C# |
|---|---|---|
| 信创落地案例 | 大量政企、工业项目商用案例 | 极少,Beta 阶段,信创几乎没有生产案例 |
| 开发栈 | 纯 C#+XAML,.NET 生态,团队上手快 | C# + QML 两套栈,需要 Qt 知识 |
| 国产 CPU 架构 | X64/ARM64 成熟;12 版本原生 LoongArch | 依赖 Qt 对各架构适配,Qt 本身在信创成熟,但桥接层新 |
| 许可 | MIT,完全免费商用,无 LGPL 分发负担 | LGPL / 商业 Qt 许可,分发约束多 |
| 渲染 | Skia 自绘 | QtQuick GPU 渲染,大屏 HMI 更强 |
✅ 选型结论(信创项目)
- 普通政务业务软件、表单 / 工具类桌面、WPF 迁移、需要同时跑兆芯 / 飞腾 / 龙芯:优先 Avalonia(Avalonia12)
- 工业大屏、HMI、复杂动画组态界面:优先 Qt 路线(Qt C++,或者预研 Qt Bridge,但不建议直接上生产)
- 如果你是信创项目,目标包含龙芯 3A6000,直接上 Avalonia12,官方原生支持 LoongArch,是目前.NET 信创桌面最优方案。
浙公网安备 33010602011771号