You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8升级后MAUI项目触发NETSDK1139错误(目标平台标识符ios未被识别)求助

.NET 8升级后MAUI项目触发NETSDK1139错误(目标平台标识符ios未被识别)求助

我完全懂你这种升级后踩坑的崩溃感!同事升级顺风顺水,自己两边(Windows+Mac)的VS都出问题,确实闹心。先帮你理下当前的核心问题:升级到.NET8后,MAUI项目报Error NETSDK1139: The target platform identifier ios was not recognized,Android也有类似情况;新建项目看不到.NET8选项,连部署目标都没了,试过卸载重装SDK/VS、workload命令、maui-check也失效。

结合我之前踩过的类似坑,给你几个针对性的排查和解决方向:

1. 先确认VS版本是否适配.NET8

这是很多人忽略的关键!.NET8要求VS 2022必须升级到17.8及以上版本(Windows和Mac都是)。如果你的VS版本低于这个,就算装了.NET8 SDK,新建项目也看不到.NET8选项,而且workload的识别也会出问题:

  • Windows:打开VS安装程序,检查是否有可用更新,直接升级到最新稳定版;
  • Mac:打开VS for Mac,通过「Visual Studio > Check for Updates」升级到最新版本。

2. 彻底修复MAUI Workload

卸载重装SDK后workload可能还是有残留或安装不完整,试试这些命令:

  • 先清理本地NuGet缓存,避免旧包干扰:
    dotnet nuget locals all --clear
    
  • 列出当前已安装的workload,确认maui、maui-ios、maui-android是否真的在列表里:
    dotnet workload list
    
  • 如果缺失,指定NuGet官方源重新安装(有时候默认源会有同步延迟):
    dotnet workload install maui maui-ios maui-android --source https://api.nuget.org/v3/index.json
    
  • 如果已经安装但还是报错,尝试修复workload:
    dotnet workload repair maui
    

3. 检查VS的MAUI组件是否完整安装

有时候VS安装时默认没勾选全MAUI的相关组件,导致平台识别失败:

  • Windows:打开VS安装程序,找到已安装的「Visual Studio 2022」,点击「修改」,在「工作负载」里勾选「.NET Multi-platform App UI开发」,然后展开右侧的「可选组件」,确保「iOS开发工具」「Android开发工具」等相关组件都勾选上,再点击「修改」完成安装;
  • Mac:打开VS for Mac,通过「Visual Studio > Preferences > SDK Locations > .NET MAUI」检查iOS和Android的SDK路径是否正确,或者直接重新安装MAUI组件。

4. 手动检查并修正项目文件

新建项目如果生成的目标框架有问题,手动编辑.csproj文件:

  • 确认目标框架节点是否正确:
    <TargetFrameworks>net8.0-android;net8.0-ios;</TargetFrameworks>
    
  • 可以添加对应的平台版本配置(比如iOS最低版本设为16.4,适配.NET8的要求):
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">16.4</SupportedOSPlatformVersion>
    <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">33.0</SupportedOSPlatformVersion>
    
  • 保存后重新加载项目,清理解决方案再重新生成。

5. 关于maui-check的替代方案

确实maui-check有时候会出现各种奇怪的报错(比如你遇到的zsh killed),官方现在也更推荐用dotnet workload系列命令来管理MAUI环境,所以不用纠结maui-check,用上面的workload命令就足够了。

如果以上步骤都试过还是不行,可以试试删除项目的.vs、bin、obj文件夹,然后重新打开项目,再运行dotnet restore,有时候缓存文件损坏也会导致这类识别问题。

备注:内容来源于stack exchange,提问作者Ben Price

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 08:00:37