在麒麟系统上利用Rider与Avalonia打造C#跨平台桌面应用

在国产麒麟系统上,用Rider和Avalonia开发C#桌面应用,我踩了这些坑 本文分享了在国产麒麟系统上使用Rider和Avalonia开发C#桌面应用的经验与踩坑记录。从环境配置、开发工具选择到Avalonia实战和部署陷阱,详细介绍了如何解决版本兼容性、字体问题及性能优化等挑战,为开发者提供实用指南。 阅读详情

1. 为什么选择麒麟+Rider+Avalonia这个组合?

如果你和我一样,是个习惯了Windows下Visual Studio和WPF的C#开发者,第一次想在国产的麒麟操作系统上搞点桌面应用,大概率会有点懵。网上搜一圈,教程要么是让你用Visual Studio Code配一堆插件和命令行,要么就是直接劝退,说Linux下C#桌面开发是“地狱难度”。我自己也踩过不少坑,从VS Code折腾到MonoDevelop,最后发现,JetBrains Rider + Avalonia UI 这个组合,可能是目前最顺滑、最接近Windows开发体验的路径。

先说说为什么是它们。麒麟系统,作为国内主流的Linux发行版,其底层基于Ubuntu或CentOS。这意味着,大部分为这些主流Linux发行版准备的开发工具和运行时,在麒麟上也能跑起来。.NET Core(现在叫.NET)的跨平台特性已经非常成熟,这为我们打下了坚实的基础。

那为什么不用更“原生”的GTK#或者一直不温不火的MAUI呢?GTK#的界面风格和开发体验,跟WPF比起来差距不小,写起来总感觉别扭。而MAUI对Linux桌面端的支持,至少在现阶段,还远谈不上完善和稳定,社区资源也相对较少。

Avalonia UI 不一样,它被很多人称为“Linux上的WPF”。它的XAML语法、数据绑定、控件模型,对于WPF开发者来说几乎可以无缝切换。它使用Skia进行渲染,不依赖系统原生控件,所以界面在不同平台上看起来高度一致,这对于需要统一用户体验的应用来说是个巨大优势。而且它的社区活跃,迭代速度快,遇到问题比较容易找到解决方案。

开发工具的选择上,Rider 几乎是Linux下C#开发的不二之选。它出自JetBrains之手,继承了IDEA系列智能、高效的血统。代码补全、重构、调试、NuGet包管理、对Avalonia XAML的智能感知支持,都做得非常到位。相比VS Code需要自己组装插件生态,Rider提供了一个开箱即用的、高度集成的专业IDE环境,能让我们把精力更多集中在业务逻辑上,而不是折腾环境。

所以,这个组合的核心优势就是:用熟悉的C#和类WPF技术栈(Avalonia),在专业的IDE(Rider)里,为国产操作系统(麒麟)打造高质量的桌面应用。下面,我就带你一步步走通这条路,把环境搭起来,把第一个“Hello Avalonia”跑起来,并解决几个初期最容易卡住你的问题。

2. 稳扎稳打:麒麟系统开发环境全配置

万事开头难,环境配置是第一步,也是最容易劝退的一步。我们力求一次成功,避免反复折腾。

2.1 第一步:确认系统版本与安装.NET SDK

麒麟系统通常会在“关于本机”或系统设置里标明版本号,比如“Kylin V10 SP1”。知道这个很重要,因为它决定了我们后续安装软件包的源。你可以打开终端,输入 lsb_release -a 命令来查看详细的发行版信息。

接下来是安装.NET SDK。这是运行和编译C#代码的引擎。我强烈建议,除非项目有强制要求,否则选择安装.NET 6.0或.NET 8.0的长期支持(LTS)版本。我最初尝试安装.NET 7.0时,就遇到了依赖库不全的问题,安装过程报错,而.NET 6.0则一切顺利。LTS版本更稳定,社区支持周期长,适合生产环境。

安装过程其实很简单,就是几条终端命令。我们以.NET 8.0 LTS为例(如果你需要6.0,把命令中的‘8.0’换成‘6.0’即可):

  1. 添加微软包仓库:这能确保我们获取到官方最新、最兼容的软件包。

    wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.ded
    

    注意 $(lsb_release -rs) 会自动获取你系统的Ubuntu基础版本号(如20.04、22.04),非常方便。

  2. 更新软件包列表并安装SDK:

    sudo apt-get update
    sudo apt-get install -y dotnet-sdk-8.0
    
  3. 验证安装:安装完成后,运行 dotnet --info。如果终端打印出了一长串关于.NET SDK和运行时的信息,包括版本号、安装路径等,那么恭喜你,第一步成功了。

2.2 第二步:安装并配置Rider

麒麟系统的应用商店里,通常可以直接搜索到“Rider”并进行安装,这是最简单的方法。如果商店没有,或者你想安装特定版本,也可以去JetBrains官网下载tar.gz压缩包,解压后运行 bin/rider.sh 脚本。

首次启动Rider,它会引导你完成一些初始化设置

国产麒麟系统上,用Rider和Avalonia开发C#桌面应用,我踩过的那些坑 本文分享了在国产麒麟系统上使用Rider和Avalonia开发C#桌面应用的实战经验,重点解析了环境搭建、Rider配置、Avalonia项目脚手架、部署打包等环节的常见问题与解决方案。针对麒麟系统的特殊性,提供了.NET SDK选型、字体渲染优化、DPI缩放处理等实用技巧,帮助开发者高效构建跨平台应用。 阅读详情

相关推荐

WinForm项目完美适配麒麟系统全攻略

摘要:本文详细介绍将C# WinForm应用迁移至国产麒麟操作系统的完整方案。由于WinForm依赖Windows API无法直接运行于Linux内核的麒麟系统,推荐采用.NET8+AvaloniaUI框架重构GUI层,业务逻辑代码可复用。方案包含环境准备、项目迁移(界面改造为XAML)、编译发布(支持交叉编译)及部署运行等关键步骤,并提供了常见问题解决方案。该方案兼顾跨平台性和工业级稳定性,使程序可同时运行于Windows和麒麟系统,特别适合工业控制等场景应用迁移。

上市公司前技术负责人,20 年软硬件深耕 + 百人研发团队管理经验,名校理工科背景加持。从技术攻坚到团队掌舵,沉淀海量项目实战与管理心得,专注分享软硬件干货、疑难问题解决方案,既是靠谱知识传播者,也盼链接优质项目共成长。 1334

国产麒麟系统下用Rider开发C#桌面应用:从环境配置到Avalonia UI实战

本文详细介绍了在国产麒麟系统上使用JetBrains Rider开发C#桌面应用的完整流程,重点讲解了Avalonia UI框架的实战应用。从环境配置、Rider安装到Avalonia项目创建和UI开发技巧,全面覆盖了在非Windows环境下进行C#开发的关键步骤和优化建议,助力开发者高效构建跨平台桌面应用。

weixin_27791839的博客 387

在麒麟系统上利用Rider与Avalonia打造高效C#桌面开发环境

本文详细介绍了在麒麟系统上使用Rider与Avalonia搭建高效C#桌面开发环境的完整流程。从.NET Core SDK安装到Avalonia框架配置,再到项目创建与调试,提供了实用的技术指导和优化建议,帮助开发者在国产操作系统上实现跨平台C#应用开发。

weixin_28835789的博客 181

在麒麟系统上构建C#跨平台开发环境:从.NetCore到Avalonia UI实战

本文详细介绍了在麒麟系统上构建C#跨平台开发环境的完整流程,从.NetCore SDK的安装配置到Avalonia UI的应用开发实战。针对麒麟系统的特殊兼容性问题,提供了SDK版本选择、开发工具配置、中文字体解决方案等实用技巧,帮助开发者高效搭建稳定的开发环境并实现跨平台应用部署。

weixin_42522669的博客 239

Avalonia实战:用C#开发跨平台桌面/移动应用的全流程指南(含安卓打包优化)

本文是一份详尽的Avalonia实战指南,旨在帮助C#开发者将技能无缝延伸至移动端开发。文章从环境搭建、MVVM架构设计,到移动端功能集成,并重点解析了Android应用的打包、签名与体积深度优化策略,助力开发者高效构建跨平台桌面与移动应用。

go5gopher的博客 832

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

ADS2023实战:2.4GHz超外差接收机从设计到链路预算全流程解析

本文以ADS 2023软件为平台,详细解析了2.4GHz超外差接收机从核心指标定义、架构原理到完整链路搭建与仿真的全流程。通过实战演练,重点阐述了如何利用ADS进行谐波平衡仿真和链路预算分析,以量化评估系统增益、噪声系数等关键性能,为射频工程师提供了一套从理论到仿真的系统级设计方法。

herb5的博客 818

<硬件设计> 阻抗设计(二) 使用Si9000计算阻抗

阻抗设计(二) 使用Si9000计算阻抗

杰克拉力船长个人博客 1万+

浅谈功放PA的VBW

摘要:VBW(视频带宽)反映功放的宽带非线性特性和记忆效应,影响数字预失真(DPD)校正能力。其成因是功放管寄生参数(如Cshunt和Leff)形成低频并联谐振,导致供电臂阻抗增大,引发电压波动和记忆效应。测试方法包括双音IM3/IM5测试(以两侧IM3差≥3dB定义VBW)和魔T测试(通过S21曲线测量谐振频率)。改善措施主要是减小Leff,如采用双电源平衡馈电。VBW指标要求通常为魔T测试结果大于3倍信号带宽,以确保功放线性度。

weixin_49761275的博客 1574

手把手教你用VCS+Verdi在Linux下仿真蜂鸟E203 RISC-V核(附波形调试技巧)

本文详细介绍了在Linux环境下使用VCS和Verdi工具链对蜂鸟E203 RISC-V核进行仿真验证的完整流程。从环境配置、工程结构解析到VCS编译优化和Verdi波形分析技巧,提供了实战性强的调试方法和性能优化策略,帮助工程师高效完成数字IC验证工作。

weixin_42531163的博客 416

《AI大模型评测与智能测试》

第三篇“实践蓝图”(第6-7章)着眼于测试领域AI应用,重点介绍了RAG、AI Agent开发及构建端到端智能测试系统的方法。本书聚焦AI时代的“质量”核心,以“AI赋能测试”(AI For Testing)与“AI模型评测”(Testing For AI)为双轮驱动。内容不仅深入剖析如何科学度量AI大模型的内在质量,还系统讲解如何利用AI赋能传统软件测试,帮助读者贯通从模型原理、评测到应用开发的全链路知识。

酌沧 1139

假新闻检测论文分享(30)MMDFND: Multi-modal Multi-Domain Fake News Detection

现有的假新闻检测方法通常集中在单一领域的新闻上,如健康或政治。然而,社交媒体上的新闻往往来自多个领域,这给单一领域的假新闻检测方法带来了两个主要挑战:数据稀缺性:处理较小、单一领域的新闻数据集时,由于训练数据的稀缺,模型的有效性显著下降。跨领域检测的准确性下降:单一领域的假新闻检测方法在跨领域新闻数据集上的准确性大幅降低。缓解领域间模态语义偏差:通过DPLE网络提取跨领域和领域特定的知识,缓解了不同领域间文本和图像的语义差异。

weixin_41964296的博客 671

【软件系统架构】系列六: SysML(系统建模语言)

SysML(系统建模语言)是OMG组织基于UML扩展的专用建模语言,用于支持复杂系统全生命周期建模。它包含9类标准图,核心建模元素包括块(Block)、端口接口、需求和约束等。与UML相比,SysML更适用于软硬件结合的复杂系统建模。作为MBSE的核心工具,SysML通过结构图、行为图、需求图和参数图实现系统设计、需求追踪和性能验证。虽然面临学习门槛高、工具成本高等挑战,但随着AI融合和国产化替代趋势,SysML在航空航天、汽车电子等领域的应用日益广泛。SysML v2将简化语法并提升互操作性,推动系统工程

moton2017的博客 2386

使用 Visual Studio Code 搭建 SAP UI5 本地开发环境

工欲善其事,必先利其器。时至今日,SAP 提供了非常多的 SAP UI5 开发工具,既包含本地搭建的,也包含浏览器里远端使用的工具,比如 WebIDE 和 Business Application Studio. 我们访问下面这个链接,就能找到所有这些工具的安装或者配置步骤: https://tools.hana.ondemand.com/#sapui5 如果想选择本地开发,SAP 推荐的工具是 Visual Studio Code,也就是本文要介绍的内容。 也可以下载 WebIDE 的本地安装包,将其安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: TeX Live 2023 安装避坑指南:Windows/Mac 双平台实测(含常见错误解决方案)
下一篇: 鼎捷T100 ERP系统环境架构设计精髓与高效部署指南
Alpha
博客等级 码龄27年 113粉丝 1665原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值