Mac环境下Dotnet项目测试报错:找不到Microsoft.NETCore.App 3.1.0(x64)
解决.NET测试时找不到兼容框架3.1.0的问题
先确认3.1 SDK/运行时是否真的安装成功
- 打开终端执行
dotnet --list-sdks,查看输出里有没有3.1.x的版本。如果没有,说明安装未生效:重新下载Intel x64架构的3.1 SDK安装包,右键运行安装(避免系统安全拦截),安装完成后重启终端再检查。 - 同时执行
dotnet --list-runtimes,确认是否存在Microsoft.NETCore.App 3.1.x (osx-x64)的运行时,没有的话单独安装对应版本的runtime。
用global.json强制指定项目使用的SDK版本
如果项目需要基于3.1 SDK构建,在项目根目录创建global.json文件,内容替换为你实际安装的3.1版本号:
{ "sdk": { "version": "3.1.426" } }
保存后,进入项目目录执行 dotnet --version,确认已切换到指定的3.1版本,再运行 dotnet test 执行测试。
修改测试项目的目标框架(绕过3.1依赖)
如果项目本身可以兼容.NET 6,直接修改测试项目的.csproj文件:
- 将
<TargetFramework>节点的值改为net6.0,比如:
<TargetFramework>net6.0</TargetFramework>
- 同时更新测试相关的NuGet包(比如
Microsoft.NET.Test.Sdk、xunit、xunit.runner.visualstudio)到适配.NET 6的版本,然后执行dotnet restore重新还原依赖,再运行测试。
指定测试时的运行时
如果必须使用3.1运行时执行测试,在终端运行测试时加上运行时参数:
dotnet test --runtime osx-x64
确保已经安装了3.1的osx-x64版本runtime,否则还是会报错。
内容的提问来源于stack exchange,提问作者StandardProc
相关产品推荐
相关产品推荐

