运行.NET 5项目测试提示找不到Microsoft.NETCore.App 5.0.0如何解决
问题原因
该报错是VS2022预览版的环境变量优先级问题导致:
- VS2022预览版安装时会自带一套独立的预览版dotnet SDK,且会将自身的dotnet路径优先写入系统环境变量,你在CLI中调用
dotnet命令时,实际运行的是VS2022内置的dotnet实例 - 该内置实例默认仅扫描自身目录下的runtime,也就是报错日志中提到的仅存在6.0预览版runtime,不会读取你系统全局
C:\Program Files\dotnet下安装的5.0.x版本runtime - VS2022内运行测试无异常,是因为IDE内部做了runtime路径适配,会主动查找全局安装的runtime版本
解决方案
你可以任选以下一种方案解决:
方案1:直接调用全局dotnet实例运行测试
运行测试时指定全局dotnet的完整路径即可:
"C:\Program Files\dotnet\dotnet.exe" test
方案2:调整系统环境变量优先级
- 打开系统环境变量编辑界面,找到Path变量
- 将
C:\Program Files\dotnet\的路径上移,放置在VS2022预览版自带的dotnet路径(对应报错中的C:\Aplic\Microsoft Visual Studio\2022\Preview\dotnet)之前 - 重启终端后再运行
dotnet test即可正常识别5.0 runtime
方案3:通过global.json指定项目SDK版本
在项目根目录新建global.json文件,写入以下内容:
{ "sdk": { "version": "5.0.400", "rollForward": "latestMinor" } }
其中version字段替换为你本地dotnet --list-sdks查询到的5.0系列SDK的最高版本号即可,运行dotnet命令时会自动匹配对应版本的SDK,不会使用6.0预览版SDK。
内容的提问来源于stack exchange,提问作者Bruno Brant
相关产品推荐
相关产品推荐

