Mac版VS2022构建.NET6项目误调用.NET5 SDK报NETSDK1045如何解决
Mac版Visual Studio 2022构建.NET 6项目触发NETSDK1045错误修复方案
问题根因
该问题由Visual Studio for Mac的SDK版本解析逻辑异常导致:即使本地已安装.NET 6 SDK,软件仍会默认调用路径下优先级更高的.NET 5 SDK对应的MSBuild执行构建,最终触发版本不兼容报错。
操作步骤
- 定位到你的解决方案文件(
.sln后缀)所在的根目录,新建名为global.json的纯文本配置文件 - 在文件中写入以下配置,强制指定构建时使用已安装的.NET 6 SDK版本:
{ "sdk": { "version": "6.0.301", "rollForward": "latestFeature" } }
注:rollForward配置可保证后续安装同大版本的更高补丁版SDK时,不需要手动修改配置文件即可自动适配
- 完全退出Visual Studio for Mac:点击程序坞中Visual Studio图标右键,选择「退出」,确保所有后台相关进程完全关闭,不要仅关闭项目窗口
- 删除项目目录下的
bin、obj两个文件夹,清空旧版本SDK生成的构建缓存 - 重新打开Visual Studio加载目标项目,执行构建即可正常调用.NET 6 SDK对应的MSBuild完成编译
额外排查项
如果完成上述操作后仍调用旧版SDK,检查用户根目录下是否存在全局global.json文件(路径为~/.global.json):
- 若该文件存在且内部指定了5.x版本的SDK号,要么直接删除该全局配置文件,要么将其中的SDK版本修改为6.x版本,避免全局配置覆盖项目级配置
- 可在Visual Studio内置终端执行
dotnet --list-sdks确认当前终端环境识别到的SDK列表,执行dotnet --version确认当前默认生效的SDK版本是否为6.x
内容的提问来源于stack exchange,提问作者slb
相关产品推荐
相关产品推荐

