
6 步在 Windows 上做出 .NET MAUI 应用从环境到发布的实战指南【免费下载链接】maui.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.项目地址: https://gitcode.com/GitHub_Trending/ma/maui还在用 WinForms 写 Windows 桌面工具下一季度老板却要求手机上也要有重写一套代码不必。.NET MAUI 让你用一份 C# 代码同时交付 Windows、Android、iOS 和 macOS 的原生应用。这篇实战指南带你走完 MAUI 环境安装、建项目、写界面、打包 MSIX 的每一步跟着做即可上手。30 秒认知卡项目说明定位Xamarin.Forms 的进化版面向 Windows、macOS 的跨平台原生应用框架支持平台iOS、Android、Windows、macOS技术栈C# XAML声明式标记语言类似 HTML适合谁.NET 开发者、想转跨平台的 Windows 开发者、移动端新手动手前一张 Windows 环境检查清单 先对照下面这张表自检缺哪项补哪项能省掉后面 80% 的折腾检查项要求操作系统Windows 10 1809 及以上或 Windows 11必须 64 位内存8 GB 起步推荐 16 GB虚拟化处理器支持 Hyper-V跑 Android 模拟器要用开发工具Visual Studio 2022社区版即可关键组件安装时勾选移动开发与 .NET工作负载并确认其中的.NET MAUI组件安装动作只有三步打开 Visual Studio 2022 安装器进入工作负载页。勾选移动开发与 .NET在右侧组件栏确认 .NET MAUI 已勾选。点修改装完顺手创建个空白 MAUI 项目编译一次工具链就通了。第一次运行5 分钟建起并跑通项目 打开 Visual Studio选创建新项目搜索框输入MAUI选 .NET MAUI App 模板命名后创建。新项目的目录长这样先混个脸熟MauiProgram.cs应用入口服务注册都在这App.xaml/AppShell.xaml根界面与导航壳MainPage.xaml你的第一页Platforms/Windows、Android、iOS 各自的差异代码Resources/图标、字体、图片等素材项目文件.csproj目标框架与打包配置.csproj里决定这份代码要编译到哪些平台TargetFrameworksnet8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0/TargetFrameworks只在 Windows 上开发把其他几段删掉只留net8.0-windows10.0.19041.0编译会快一大截。然后按 F5默认目标就是 Windows第一版应用就在你桌面上跑起来了。布局速查用 XAML 拼出界面 XAML 是描述界面长什么样的标记语言属性写在标签里改一行刷一下就能看到效果。常用容器速查如下容器干什么用一句话理解VerticalStackLayout/HorizontalStackLayout垂直/水平排列子元素把卡片一列列摆好Grid行列网格一张 Excel 表格ScrollView包裹可滚动内容可上下拉长的画布一个能直接用的页面骨架ScrollView VerticalStackLayout Spacing20 Padding30 Image Sourcedotnet_bot.png HeightRequest180 HorizontalOptionsCenter / Label TextHello, Windows! FontSize28 HorizontalOptionsCenter / Button Text点我 ClickedOnCounterClicked HorizontalOptionsCenter / /VerticalStackLayout /ScrollView想要多列就多上Grid给它RowDefinitionsAuto,*和ColumnDefinitions*,2*再用Grid.Row、Grid.Column指定每个控件落在哪一格表单类界面基本都能搞定。示例工程Resources/Images里自带现成素材比如 photo.jpg写进Image的Source就能加载让数据动起来数据绑定与 MVVM 想象一家餐厅View 是大堂顾客只能看到桌面和菜单ViewModel 是服务员把顾客需求转成订单、把端上来的菜摆好Model 是厨房真正干活的是它。三者各干各的换装修改 UI不用动厨房。落到 MAUI 术语上就是{Binding OrderCount}把界面属性接到 ViewModel 属性上数据一变UI 自动刷新。而通知 UI 刷新靠的是INotifyPropertyChanged接口——它是 ViewModel 上挂的一只铃铛属性一改就摇铃public class MainViewModel : INotifyPropertyChanged { private int _count; public int Count { get _count; set { _count value; OnPropertyChanged(); } } public event PropertyChangedEventHandler? PropertyChanged; void OnPropertyChanged() PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Count))); }页面加载时一行代码把 ViewModel 交给界面BindingContext new MainViewModel();。之后 XAML 里写Text{Binding Count}计数器就活了。质量把关调试与测试你的 MAUI 应用 本地调试目标选 Windows打断点按 F5和调试普通 .NET 程序完全一样。模拟器与真机Android 用模拟器或 USB 真机iOS 需要 Mac 上的模拟器。在工具栏的目标设备下拉框里切换即可。单元测试加一个 xUnit 测试项目引用主项目把 ViewModel 当普通类测[Fact] public void Count_Increases_When_Added() { var vm new MainViewModel(); vm.Count; Assert.Equal(1, vm.Count); }业务逻辑放 ViewModel意味着绝大部分代码不依赖任何平台 API一台 Windows 机器上就能把测试全跑绿。真要看 UI 层面的回归参考 docs/UITesting-Guide.md它演示了如何用 UI 测试框架对比截图——失败了大概长这样上架一键生成 MSIX 应用包 MAUI 的 Windows 产物是MSIXWindows 应用包格式类似 Android 的 APK发布路径有两条侧载把.msix文件直接发给同事装完即用适合内部工具。Microsoft Store提交商店审核面向公开分发。两种方式都能走Visual Studio 里右键项目 →发布 → 选 Windows按向导勾生成应用包即可。习惯命令行的话dotnet publish -f net8.0-windows10.0.19041.0 -p:WindowsPackageTypeMSIX跑完在输出目录里拿到.msix双击安装版本号和包名在项目的打包属性里配置。避坑清单MAUI Windows 开发高频 5 问 ❓Q1编译一次要等好几分钟正常多目标框架会编译所有平台。只留 Windows 目标见前文.csproj的TargetFrameworks日常开发快得多。Q2报找不到 .NET MAUI 工作负载或组件缺失打开 VS Installer 重新勾选移动开发与 .NET和 .NET MAUI 组件装完重启 IDE。Q3怎么给控件加自定义属性别只写普通字段用BindableProperty.Create(nameof(Radius), typeof(double), typeof(MyView), 0d)创建可绑定属性XAML 里才能直接赋值。Q4列表一长就卡三条药方减少嵌套层级Grid替代层层套的StackLayout、长列表启用虚拟化、耗时操作移出 UI 线程async异步。Q5Windows 上样式和文档图对不上Windows 端由 WinUI 原生渲染平台差异代码集中在Platforms/Windows/目录先翻这里再怀疑框架。收尾接下来做什么 给你三个具体动作今晚就能开始用 10 分钟做一个计数器小应用走完建项目 → F5 → 加绑定全流程。挑现有某个 Windows 内部工具的一个页面用 MAUI 重写一遍试试手感。按发布章节打出第一个 MSIX侧载到另一台机器验证。延伸资料都在仓库里开发指南docs/DevelopmentTips.mdUI 测试指南docs/UITesting-Guide.md可运行的控件示例应用src/Controls/samples/仓库入口https://gitcode.com/GitHub_Trending/ma/maui【免费下载链接】maui.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.项目地址: https://gitcode.com/GitHub_Trending/ma/maui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考