升级Visual Studio 2019到16.4.0后无法运行.NET Core 2.2单元测试
解决方案:VS2019 16.4运行.NET Core 2.2单元测试找不到运行时的问题
我之前处理过好几起类似的案例,你的问题核心其实是Visual Studio 2019 16.4版本的测试运行器默认采用32位架构,导致它去C:\Program Files (x86)\dotnet\路径找运行时,但你安装的.NET Core 2.2运行实际在64位的C:\Program Files\dotnet\目录下——这就解释了为什么dotnet test和VS Code能正常工作,它们默认调用的是64位的.NET Core环境。
下面是几个靠谱的解决方向,按优先级尝试:
1. 切换测试运行器的架构为x64
这是最直接的修复方法:
- 打开Visual Studio的测试资源管理器,点击顶部的齿轮图标(测试设置)
- 在弹出的对话框中,将「默认处理器架构」修改为x64
- 保存设置后,重新运行单元测试,此时测试运行器会从64位的
C:\Program Files\dotnet\路径加载正确的2.2.0运行时
2. 确保测试项目的运行时配置正确
有时候测试项目的运行时配置会缺失或错误:
- 右键你的单元测试项目 → 「属性」→ 「生成」选项卡
- 勾选「生成运行时配置文件」,点击确定后重新生成项目
- 找到项目输出目录下的
[项目名称].runtimeconfig.json文件,检查内容是否正确指定了2.2.0版本:{ "runtimeOptions": { "framework": { "name": "Microsoft.AspNetCore.App", "version": "2.2.0" } } }
3. 修复Visual Studio的.NET Core 2.2组件
可能VS安装时的.NET Core 2.2测试组件有损坏:
- 打开Visual Studio安装器,选择你的VS2019实例点击「修改」
- 切换到「单个组件」标签,搜索并勾选「.NET Core 2.2开发工具」
- 点击「修改」完成安装,重启Visual Studio后再尝试运行测试
4. 清理Visual Studio的缓存文件
VS的缓存可能导致运行时识别异常:
- 关闭所有Visual Studio实例
- 删除以下两个目录的全部内容:
%USERPROFILE%\AppData\Local\Microsoft\VisualStudio\16.0_*\ComponentModelCache(*是你的VS实例ID)%USERPROFILE%\AppData\Local\Temp\VisualStudioTestExplorerExtensions
- 重启Visual Studio,重新运行测试
⚠️ 注意:你之前手动把2.2.0文件夹复制到C:\Program Files (x86)\dotnet\的操作会导致32位和64位运行时冲突,建议尽快删除这个复制的文件夹,避免引发更多错误。
内容的提问来源于stack exchange,提问作者Sebastian Inones
相关产品推荐
相关产品推荐

