.NET MAUI中如何移除不需要编译的目标平台
.NET MAUI 仅编译Windows、macOS平台的标准配置方案
不要手动直接删除Platforms下的平台目录,编译时目录自动重建是.NET MAUI SDK的默认行为,按以下步骤配置即可永久移除不需要的Android、iOS平台支持:
步骤1:修改目标框架配置
右键项目选择「编辑项目文件」,找到<TargetFrameworks>节点,默认配置包含全平台标识:
<TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0</TargetFrameworks>
删除Android、iOS对应的框架标识,仅保留需要的平台:
<TargetFrameworks>net8.0-maccatalyst;net8.0-windows10.0.19041.0</TargetFrameworks>
注意:框架版本号需和本地安装的.NET SDK版本匹配,使用.NET 7/.NET 9时替换对应netX.0前缀即可,Windows端的SDK版本号可根据本地已安装的版本调整。
步骤2:关闭平台目录自动生成逻辑
在同一个<PropertyGroup>节点下添加如下配置,禁用SDK自动补全缺失平台目录的行为:
<DisableImplicitPlatformFolders>true</DisableImplicitPlatformFolders>
步骤3:清理残留配置与文件
- 直接删除Platforms文件夹下的Android、iOS及其他不需要的平台目录,配置生效后编译不会再重建这些目录
- 扫描.csproj文件内所有带平台判断条件的配置块,即Condition属性匹配
$(TargetPlatformIdentifier) == 'Android'、$(TargetPlatformIdentifier) == 'iOS'的<PropertyGroup>、<ItemGroup>节点,全部删除即可,这些就是零散分布的专属平台配置 - 打开Properties目录下的launchSettings.json文件,删除所有和Android、iOS相关的启动配置项,避免调试工具栏下拉列表出现无效的平台选项
步骤4:验证配置生效
关闭Visual Studio,删除项目根目录下的bin、obj缓存文件夹,重新打开项目即可。此时调试目标仅会展示Windows、macOS选项,编译过程不会再加载Android、iOS相关的构建任务,也不会自动生成已删除的平台目录。
补充:如果后续需要恢复其他平台支持,只要在
<TargetFrameworks>节点加回对应平台标识,将<DisableImplicitPlatformFolders>设为false,重新编译即可自动补全对应平台的基础文件,无需手动搭建目录结构。
内容的提问来源于stack exchange,提问作者DaWiseguy
相关产品推荐
相关产品推荐

