升级Visual Studio for Mac 8.10后无法识别.NET 5.0/6.0编译报错
错误说明
升级Visual Studio for Mac至8.10版本并安装.NET 6.0 SDK后,原本.NET 5.0可正常构建的项目编译失败,报错信息如下:
/Users/myusername/Library/Caches/VisualStudio/8.0/MSBuild/7750_1/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets(5,5): Error NETSDK1005: Assets file '/Users/myusername/Documents/myProjectName/myproject.Core/obj/project.assets.json' doesn't have a target for '.NETFramework,Version=v5.0'. Ensure that restore has run and that you have included 'net50' in the TargetFrameworks for your project. (NETSDK1005)
报错中文含义:
project.assets.json资产文件不包含.NETFramework,Version=v5.0对应的目标配置,请确认已执行NuGet还原操作,且项目的TargetFrameworks配置中包含net5.0。
核心原因
该错误是项目缓存、IDE全局缓存和项目目标框架配置不匹配导致的,和SDK安装是否成功无直接关联:升级IDE和SDK后,旧的project.assets.json文件是基于之前的目标框架生成的,不包含现有配置要求的目标框架信息,MSBuild读取旧文件时就会抛出该错误。
修复步骤
- 清理项目本地缓存:右键点击解决方案选择「清理所有」,手动删除所有项目目录下的
bin、obj文件夹,移除旧的还原生成文件。 - 核对项目目标框架配置:打开项目的
.csproj文件,检查<TargetFramework>/<TargetFrameworks>节点配置:- 若需同时兼容.NET5和.NET6,配置为
<TargetFrameworks>net5.0;net6.0</TargetFrameworks> - 若仅需使用.NET6,配置为
<TargetFramework>net6.0</TargetFramework>
- 若需同时兼容.NET5和.NET6,配置为
- 清理IDE全局缓存:点击顶部菜单栏「Visual Studio」→「清除缓存」,完成后重启Visual Studio for Mac。
- 重新还原包并编译:重启后右键点击解决方案选择「还原NuGet包」,还原完成后重新执行编译即可。
验证排查
如果上述操作后仍然报错,可打开终端进入项目根目录,执行dotnet build命令直接编译:
- 若命令行编译正常:重复清理IDE缓存步骤即可解决IDE侧的配置问题
- 若命令行也报错:检查
.csproj配置是否存在拼写错误,确认已安装对应版本的.NET SDK。
内容的提问来源于stack exchange,提问作者Nagesh Andani
相关产品推荐
相关产品推荐

