You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2017测试调试异常:提示no source available问题求助

解决ASP.NET Core迁移后net461项目测试用例无法调试的问题

我之前处理过类似的场景,结合你提到的迁移至ASP.NET Core后目标框架为net461的情况,给你几个实用的排查和解决步骤:

1. 对齐测试项目与主项目的目标框架

  • 确认测试项目的目标框架同样设置为net461,和主项目保持一致。迁移过程中容易误改测试项目的TFM(目标框架名称),导致调试器无法匹配源文件。
  • 检查测试项目对主项目的引用类型:优先选择项目引用而非NuGet包引用(本地开发场景),如果必须用包引用,确保包包含对应的.pdb符号文件。

2. 调整调试器符号与常规设置

  • 打开Visual Studio的「工具」→「选项」→「调试」→「符号」:勾选「Microsoft符号服务器」,如果有本地生成的符号文件,可手动添加对应的文件夹路径。
  • 切换到「调试」→「常规」:取消勾选启用仅我的代码,这个选项有时会让调试器跳过实际存在但暂时未匹配到的源文件。

3. 清理重建解决方案,确保符号文件生成

  • 右键解决方案选择「清理解决方案」,然后手动删除所有项目的bin和obj文件夹(或执行命令 dotnet clean)。
  • 右键解决方案选择「重建解决方案」,确保所有项目编译成功,且在Debug模式下生成了完整的.pdb符号文件。

4. 检查测试项目的编译与适配器配置

  • 打开测试项目属性→「生成」→「高级」:将「调试信息」设置为完整,确保生成的符号文件包含足够的调试信息。
  • 更新测试框架的适配器版本:如果你用的是xUnit或NUnit,在NuGet包管理器中更新对应的适配器(比如xUnit.runner.visualstudio),旧版本适配器可能和ASP.NET Core + net461的组合存在兼容性问题。

5. 手动映射源文件路径

当弹出「no source available」窗口时,点击「浏览查找源」,手动定位到主项目对应的.cs文件。调试器有时会因为路径映射偏差找不到源,手动指定一次后通常会自动记住映射关系。

内容的提问来源于stack exchange,提问作者Camilla Martins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:21:01