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

来源:这里教程网 时间:2026-02-21 17:36:49 作者:

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
(复数),并用分号分隔多个框架:

<PropertyGroup>
  <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0</TargetFrameworks>
</PropertyGroup>

? 提示:若只开发部分平台,不必全写;例如只做安卓+Windows,就只保留前两个。WebAssembly 需额外启用

<enableaot>true</enableaot>
(可选)且构建较慢,建议按需添加。

条件编译与平台专用代码

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

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

相关推荐