您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

C# / .NET 跨平台运行调研

✨步子哥 (steper) 2026年01月11日 09:58 0 次浏览

C# 的 .NET Core(以及现在统一后的 .NET)可以运行在 macOS 和 Linux 上,而且是官方支持的跨平台运行环境


✅ .NET / .NET Core 的跨平台支持

支持的操作系统

.NET Core(从 .NET 5 起统一称为 .NET原生支持以下系统
  • Windows
  • macOS
  • Linux(Ubuntu、Debian、CentOS、Alpine、RHEL 等)
同一份 C# 代码,通常无需修改即可在这些系统上运行。

✅ 可运行的应用类型

在 macOS / Linux 上可以运行:

✔ 控制台应用

dotnet run
dotnet myapp.dll

✔ Web 应用(ASP.NET Core)

  • Web API
  • MVC
  • Razor Pages
  • Minimal API
ASP.NET Core 本身就是为跨平台设计的

✔ 后台服务 / 微服务

  • Docker 容器
  • Kubernetes
  • systemd 服务(Linux)
  • launchd(macOS)

✔ 工具类程序

  • CLI 工具
  • 自动化脚本

❌ 不完全支持或不支持的情况

技术macOS / Linux
**WinForms**❌ 仅 Windows
**WPF**❌ 仅 Windows
**UWP / WinUI**❌ 仅 Windows
**COM / Registry / Windows API**

跨平台 UI 推荐:

  • .NET MAUI(跨平台桌面 + 移动)
  • Avalonia UI
  • Uno Platform


✅ 在 macOS / Linux 上的开发体验

安装 .NET SDK

# macOS (brew)
brew install dotnet

# Ubuntu
sudo apt install dotnet-sdk-8.0

常用开发工具

  • VS Code + C# Dev Kit
  • JetBrains Rider
  • Visual Studio for Mac(⚠ 已停止维护,不推荐)

✅ 示例:跨平台运行

dotnet new webapi -n MyApi
cd MyApi
dotnet run

同一项目:

  • Windows ✅
  • macOS ✅
  • Linux ✅
  • Docker ✅


✅ 总结一句话

C# 的 .NET Core / .NET 是官方支持的跨平台框架,可在 macOS 和 Linux 上稳定运行,尤其适合 Web、API、微服务和云原生应用。

讨论回复

2 条回复
✨步子哥 (steper) #1
01-11 09:59

下面我从 定位、技术架构、跨平台能力、学习成本、适用场景 等方面,系统性地介绍 Avalonia UIUno Platform,并在最后给出选型建议,方便快速决策。


一、Avalonia UI

✅ 基本介绍

Avalonia UI 是一个 跨平台桌面 UI 框架,专注于 Windows / macOS / Linux,语法和思想高度接近 WPF
✅ 如果你会 WPF,几乎可以“无痛迁移”

✅ 支持的平台

平台支持
Windows
macOS
Linux
浏览器(WebAssembly)✅(实验/逐步完善)
Android / iOS⚠ 有社区方案,不是主力

✅ 技术特点

1️⃣ XAML + MVVM

  • 使用 XAML
  • 原生支持 MVVM
  • DataBinding、Command、Styles、Templates 都很成熟
<TextBlock Text="{Binding Title}" />
<Button Content="Click" Command="{Binding SaveCommand}" />

2️⃣ 自绘引擎(跨平台一致性)

  • 不依赖系统原生控件
  • 使用 Skia / Direct2D 渲染
  • UI 在所有平台外观一致 ✅
✅ 优点:一致性强 ❌ 缺点:不完全“原生风格”

3️⃣ WPF 开发者非常友好

  • 类似:
- DependencyProperty - ControlTemplate - ResourceDictionary
  • 可以迁移大量 WPF 思想和代码

✅ 优点 & 缺点

✅ 优点

  • ✅ 学习成本低(WPF 开发者)
  • ✅ 桌面端体验好
  • ✅ 开源、社区活跃
  • ✅ Linux 支持非常好

❌ 缺点

  • ❌ 移动端支持弱
  • ❌ Web 端仍在完善
  • ❌ 商业控件生态不如 WPF / Uno

✅ 适合场景

  • 桌面软件(跨平台)
  • 工具类 / IDE / 管理软件
  • 从 WPF 迁移到跨平台

二、Uno Platform

✅ 基本介绍

Uno Platform 是一个 “一次编写,多端运行” 的 UI 平台,以 WinUI / UWP 为核心模型
✅ 如果你熟悉 UWP / WinUI / Windows App SDK,非常适合

✅ 支持的平台

平台支持
Windows (WinUI)
macOS
Linux
iOS
Android
WebAssembly

真正意义的全平台


✅ 技术特点

1️⃣ WinUI / UWP API

  • 使用 XAML(WinUI 风格)
  • API 和 Windows 平台高度一致
<Button Content="Save"
        Command="{Binding SaveCommand}" />

2️⃣ 原生控件(非自绘)

  • iOS → UIKit
  • Android → Android Views
  • Web → HTML / CSS
  • Desktop → Skia / native
✅ 平台体验更“原生”

3️⃣ 与微软生态高度兼容

  • 支持:
- WinUI 3 - Windows App SDK - Windows API(部分)

✅ 优点 & 缺点

✅ 优点

  • ✅ 覆盖平台最广
  • ✅ UI 更接近原生体验
  • ✅ 可直接复用 WinUI / UWP 代码
  • ✅ 非常适合移动端 + 桌面 + Web

❌ 缺点

  • ❌ 学习成本较高
  • ❌ 抽象层复杂,调试难度大
  • ❌ 桌面 Linux/macOS 成熟度略逊 Avalonia

✅ 适合场景

  • 全平台产品(桌面 + 移动 + Web)
  • 原 UWP / WinUI 项目迁移
  • 企业级应用、长期产品

三、Avalonia vs Uno 对比速览

对比项Avalonia UIUno Platform
核心定位跨平台桌面真 · 全平台
技术风格WPFWinUI / UWP
UI 渲染自绘原生控件
Linux 支持⭐⭐⭐⭐⭐⭐⭐⭐
移动端支持⭐⭐⭐⭐⭐
WebAssembly
学习成本中~高
社区成熟度中高

四、如何选择?(直接结论)

✅ 选 Avalonia UI 如果:

  • 你主要做 桌面应用
  • 你熟悉 WPF
  • 需要 macOS / Linux 支持
  • 不关心移动端
👉 80% 桌面跨平台项目首选

✅ 选 Uno Platform 如果:

  • 你需要 桌面 + 手机 + Web
  • 你有 UWP / WinUI 经验
  • 希望 UI 更“原生”
  • 项目生命周期长、规模大
👉 企业级全平台产品首选

✅ 一句话总结

Avalonia = WPF 跨平台桌面之王 Uno = WinUI 全平台解决方案

✨步子哥 (steper) #2
01-11 10:01

Uno Platform 在 Windows 11 上的安装体验是目前跨平台 .NET UI 框架里做得最好的之一。下面给你一套官方推荐、稳定、少踩坑的安装流程,适合 Win 11 + 新项目

✅ 以下步骤适用于 2026 年初Uno Platform 5.x + .NET 9 的主流组合

一、整体安装流程概览(先看这个)

在 Windows 11 上安装 Uno Platform,推荐顺序是

  1. ✅ 安装 Visual Studio 2022
  2. ✅ 安装 .NET SDK(8 / 9)
  3. ✅ 安装 Uno Platform 扩展
  4. ✅ 运行 uno-check(关键步骤)
  5. ✅ 创建并运行第一个 Uno 项目

二、步骤 1:安装 Visual Studio 2022(必选)

✅ 推荐版本

  • Visual Studio 2022
  • 版本要求:17.12 或以上(支持 .NET 9)

✅ 必选工作负载(非常重要)

在 VS Installer 中勾选:

.NET 桌面开发
使用 .NET 的移动开发
ASP.NET 和 Web 开发

Uno 会用到桌面、WebAssembly、Android/iOS 的工具链
📌 Android / iOS 即使暂时不用,也建议先装,后面省事

官方说明:Visual Studio 与 .NET 版本对应关系
(learn.microsoft.com)


三、步骤 2:安装 .NET SDK

✅ 推荐安装

  • .NET 8(LTS)
  • .NET 9(Current)
可以同时安装,互不冲突。
Uno Platform 当前模板和 Skia Desktop / WASM 都已支持 .NET 9
(platform.uno)

四、步骤 3:安装 Uno Platform 扩展

在 Visual Studio 中:

  1. 打开 Extensions → Manage Extensions
  2. 搜索 Uno Platform
  3. 安装:
- ✅ Uno Platform
  1. 重启 Visual Studio
这一步会提供:
  • 项目模板
  • XAML 编辑支持
  • 平台配置向导
官方说明 (platform.uno)

五、步骤 4:运行 uno-check(⚠️ 最关键)

uno-check 是 Uno Platform 的“环境医生” 会自动检测并安装你缺失的 SDK、工具、模拟器

✅ 安装 uno-check

dotnet tool install -g uno.check

或更新:

dotnet tool update -g uno.check

✅ 运行检查

uno-check

你会看到类似:

  • ✅ .NET SDK
  • ✅ Visual Studio Workloads
  • ❌ Android SDK(可自动修复)
  • ❌ WebAssembly Tools

👉 一路选择 Y 让它自动修复即可

官方文档
(platform.uno)


六、步骤 5:创建你的第一个 Uno 项目(推荐方式)

✅ 方式一:Visual Studio(最简单)

  1. Create a new project
  2. 搜索:Uno Platform App
  3. 选择 Recommended
  4. 选择平台(建议):
- ✅ Skia Desktop(Windows / Linux / macOS) - ✅ WebAssembly - ✅ Windows App SDK
  1. 创建并运行

✅ 方式二:命令行(更灵活)

dotnet new unoapp -n MyUnoApp
cd MyUnoApp
dotnet run -f net9.0-desktop

模板说明
(platform.uno)


七、你现在已经能做什么?

✅ 在 Windows 11 上运行 Uno 应用
✅ 同一项目可运行:

  • Windows(WinUI / Skia)
  • Linux / macOS(Skia)
  • Web(WebAssembly)
  • Android / iOS(后续)

✅ 使用:
  • XAML
  • MVVM
  • WinUI API
  • CommunityToolkit


八、常见新手建议(少踩坑)

先从 Skia Desktop + Windows 开始
不要一开始就全平台编译
uno-check 报错一定要修完再写代码
升级 Uno / .NET 用 global.json 控制


✅ 一句话总结

在 Windows 11 上安装 Uno Platform 的正确姿势是:
Visual Studio + .NET SDK + Uno 扩展 + uno-check,一次到位。

Learn more:
  1. Install .NET on Windows - .NET | Microsoft Learn
  2. Supported platforms
  3. Quick Start
  4. Setup your environment with uno-check
  5. The Uno Platform Solution Template