C# MAUI项目怎么进行多目标平台编译 MAUI TargetFrameworks配置

6次阅读

MAUI 项目通过 TargetFrameworks 属性实现多平台编译,需在。csproj 中配置 net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0 等框架,支持条件编译与平台专属资源管理。

C# MAUI 项目怎么进行多目标平台编译 MAUI TargetFrameworks 配置

MAUI 项目通过 TargetFrameworks 属性实现多平台编译,只需在项目文件(.csproj)中正确配置目标框架即可,无需额外插件或脚本。

支持的 TargetFrameworks 值

MAUI 官方支持以下目标框架(注意大小写和版本号):

  • net8.0-android — Android 平台(需安装 Android SDK 和工作负载)
  • net8.0-ios — iOS 平台(仅 macOS,需 Xcode 和 Apple 开发者 工具
  • net8.0-maccatalyst — macOS(通过 Catalyst 运行 iOS 代码)
  • net8.0-windows10.0.19041.0 — Windows(WinUI 3,最低系统要求 Win10 2004)
  • net8.0-browser — WebAssembly(Blazor Hybrid 模式,运行在 浏览器 中)

在 .csproj 中配置多目标框架

打开项目文件(如 MyApp.Maui.csproj),将 TargetFramework 改为 TargetFrameworks(复数),并用分号分隔多个框架:

   net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0 

? 提示:若只开发部分平台,不必全写;例如只做 安卓+Windows,就只保留前两个。WebAssembly 需额外启用 true(可选)且构建较慢,建议按需添加。

条件编译与平台专用代码

多目标后,可用预 处理器 指令区分平台逻辑:

  • #if ANDROID / #elif IOS / #elif WINDOWS / #elif MACCATALYST
  • 对应常量由 SDK 自动定义,无需手动设置
  • 平台专属资源(如图标、权限声明)放在各平台子目录下:Platforms/Android/AndroidManifest.xmlPlatforms/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 会自动识别多平台,并在生成菜单中提供对应目标选项。不复杂但容易忽略大小写和分号格式。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-03发表,共计1252字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources