macOS环境下安装.NET 10 SDK后版本显示异常及.NET 10 MAUI项目报错的解决求助
嘿,我之前也踩过类似的多版本SDK冲突的坑,给你几个一步步排查解决的方向,应该能搞定:
一、先搞定SDK版本显示异常的问题
明明装了.NET 10却优先用9.x,大概率是路径优先级或者多版本管理的问题:
先查清楚当前用的
dotnet是哪个版本的
跑这行命令看看dotnet命令的实际路径:which dotnet官方包默认装在
/usr/local/share/dotnet/,而脚本安装的SDK一般在~/.dotnet/目录下,要是输出的是旧版本的路径,那问题就出在这了。确认系统里到底装了哪些SDK
执行这行看看已安装的SDK列表,确认10.0.101是不是在里面:dotnet --list-sdks如果能看到10.0.101,说明SDK确实装好了,只是系统没优先用它。
调整环境变量PATH的优先级
跑echo $PATH看路径顺序——系统会优先找排在前面的目录里的命令。要是旧版本的.NET路径在~/.dotnet/前面,就会先调用9.x的SDK。
调整的话,编辑你的shell配置文件(比如~/.zshrc或者~/.bash_profile,看你用的是zsh还是bash),加一行:export PATH="$HOME/.dotnet:$PATH"保存后执行
source ~/.zshrc(对应你的配置文件名)让设置生效,再跑dotnet --version应该就能看到10.x的版本了。给项目单独指定SDK版本(最稳妥的方式)
要是不想改全局配置,或者只想让这个MAUI项目用.NET 10,就在项目根目录创建一个global.json文件,内容写死指定用10.0.101:{ "sdk": { "version": "10.0.101" } }之后在项目目录下跑
dotnet --version,就会强制用指定的10.x版本了。
二、解决MAUI项目的NETSDK1139报错
这个错误本质是当前用的SDK不认识net10.0-android这个目标框架,先确保上面的版本问题解决了,再做这些操作:
检查项目文件的目标框架配置
打开你的MauiDeepLink.csproj,确认TargetFramework节点写的是net10.0-android,有没有拼写错误(比如少打了0、拼错android这类低级错误)。清理缓存重新还原依赖
在项目目录下执行这两行,清空旧的构建缓存,重新拉取.NET 10对应的依赖:dotnet clean dotnet restore补装MAUI Android的专属组件
有时候SDK装好了,但MAUI的Android workload没装全,执行这行补装:dotnet workload install maui-android等安装完成后再尝试构建项目。
三、备选方案:彻底重装(如果上面都没搞定)
要是旧版本残留太多导致各种冲突,试试彻底清干净重装:
- 手动删除两个默认的.NET安装目录:
/usr/local/share/dotnet/和~/.dotnet/; - 重新运行官方下载的.NET 10 SDK安装包完成安装;
- 跑
dotnet --version确认版本是10.x; - 最后装完整的MAUI组件:
dotnet workload install maui。
你可以从第一步开始一步步试,大多数情况下调整PATH或者加个global.json就能解决版本问题。要是中间哪个步骤有异常输出,或者问题还在,随时把细节发出来,我再帮你排查!




