【问题标题】:Why are breakpoints in production assembly not working when debugging test code?为什么调试测试代码时生产程序集中的断点不起作用?
【发布时间】:2018-11-08 13:16:19
【问题描述】:

我有一个包含生产程序集和测试程序集的 Web 项目。当我在 Visal Studio 2017 社区版中调试我的代码时,我可以设置断点。但是当我调试我的测试代码时,突然之间,生产程序集中的断点不再起作用了。

工具提示显示了这个非常熟悉的错误消息:

The breakpoint will not currently be hit. No symbols have been loaded for this document.

我的项目结构是我有一个项目文件夹和 UnitTes 项目的文件夹。

我的生产程序集的命名空间是 MyProj.Web,我的 UnitTest 项目的命名空间是 MyProj.Web.UnitTests

我检查了测试项目的 bin\Debug 文件夹是否包含所需的所有内容,它确实包含测试 dll,包括 pdbs,生产 dll 还包括 pdbs。我已经检查了代码是否真的在这个文件夹中运行,并且确实如此。

我怀疑我在这里做错了什么,但是什么?

【问题讨论】:

  • 要调试单元测试,您必须执行以下任一操作:右键单击测试方法 > 运行调试测试或(顶部菜单)测试 > 调试 > 所有测试
  • @LucaCorradi 这真的不是我的问题。
  • 澄清:我在我的测试程序集中遇到了断点,但在我的生产程序集中没有。当我通过 F5 启动应用程序时,我还可以在生产程序集中打断点
  • @tweray 我看过这篇文章。当我调试我的测试代码并打开模块窗口时,我可以看到我的生产程序集的 pdb 尚未加载。当我尝试手动加载它时,我可以在浏览对话框中选择它,但是我无法添加它:A matching symbol file was not found in this folder.,在我选择它之后?!?但更重要的是,我以前从来没有遇到过这个问题,我一定是我的项目结构做错了什么

标签: c# visual-studio debugging breakpoints


【解决方案1】:

如果您在附加调试器之前发布文件,请确保使用正确的调试配置构建程序集

同时检查构建选项卡下每个项目的项目属性,在下图的高级部分中,从调试信息下拉列表中选择“完整”。这将确保您能够将调试器附加到程序集。

【讨论】:

  • 我不熟悉上面的对话框,我正在做一个网络项目,但现在一切都是本地的。第二个对话框,我之前已经检查过,一切都很好,但我的问题仍然存在。我想我可能在整体结构上做错了(文件夹或命名空间,我在设置完所有内容后摆弄了命名空间)
猜你喜欢
  • 2018-01-06
  • 2010-12-03
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2013-05-06
  • 2019-10-11
相关资源
最近更新 更多