从其他系统导入文件后出现NETSDK1005报错问题咨询
报错核心原因
这个NETSDK1005错误本质是项目依赖资产文件和本地环境不匹配,跨系统导入项目时常见诱因有三个:
- 拷贝项目时带上了原系统生成的
obj、bin临时目录,里面旧的project.assets.json是按原系统环境生成的,和你本地SDK状态不兼容 - 本地未安装项目要求的.NET 5 SDK,你当前环境只装了6.0.301版本的.NET 6 SDK,大版本之间不会自动兼容
- NuGet本地缓存损坏,导致还原依赖时没有正确生成net5.0对应的资产条目
修复步骤
按顺序操作即可:
- 先关闭Visual Studio或者你正在用的代码编辑器,直接进入项目根目录,手动删除整个
bin文件夹和obj文件夹,这两个目录存放的都是本地编译、还原生成的临时文件,跨设备/系统拷贝项目本身就不应该携带这两个目录,删除不会损伤源码。 - 打开终端执行
dotnet --list-sdks,查看本地已安装的SDK列表,如果列表里没有5.0.x版本的SDK,先安装对应.NET 5 SDK再继续后续操作。 - 用文本编辑器打开项目后缀为
.csproj的项目文件,检查<TargetFramework>节点的配置值是否为net5.0,确认没有拼写错误、多余空格这类问题。 - 在项目根目录(存放.csproj文件的层级)打开终端,执行
dotnet restore手动触发依赖还原,还原完成后重新打开项目生成即可。 - 如果以上操作后仍然报错,执行
dotnet nuget locals all --clear清空本地所有NuGet缓存,再重新执行还原操作即可解决缓存损坏导致的识别异常。
内容的提问来源于stack exchange,提问作者Amir Hussain
相关产品推荐
相关产品推荐

