MAUI 项目通过 TargetFrameworks 属性实现多平台编译,需在.csproj中配置net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0等框架,支持条件编译与平台专属资源管理。
MAUI 项目通过 TargetFrameworks 属性实现多平台编译,只需在项目文件(.csproj)中正确配置目标框架即可,无需额外插件或脚本。
MAUI 官方支持以下目标框架(注意大小写和版本号):
打开项目文件(如 MyApp.Maui.csproj),将 TargetFramework 改为 TargetFrameworks(复数),并用分号分隔多个框架:
net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0
? 提示:若只开发部分平台,不必全写;例如只做安卓+Windows,就只保留前两个。WebAssembly 需额外启用 (可选)且构建较慢,建议按需添加。
多目标后,可用预处理器指令区分平台逻辑:
#if ANDROID / #elif IOS / #elif WINDOWS / #elif MACCATALYST
Platforms/Android/AndroidManifest.xml、Platforms/iOS/Info.plist 等命令行构建时指定平台可提升效率(尤其 CI/CD 场景):
dotnet build -t:Restore — 先恢复所有平台依赖dotnet build -f net8.0-android — 只构建安卓版dotnet publish -f net8.0-windows10.0.19041.0 -c Release — 发布 Windows 版本⚠️ 注意:iOS 构建必须在 macOS 上进行
;Windows 平台需安装 Microsoft.Windows.CsWin32 和 WinUI 3 工作负载;Android 需配置 JDK 17+ 和 Android SDK 路径。
基本上就这些。配置正确后,VS 或 VS for Mac 会自动识别多平台,并在生成菜单中提供对应目标选项。不复杂但容易忽略大小写和分号格式。