找不到.cs文件来调试.NET源代码

JBS*_*rro 61 .net c# debugging

我尝试通过遵循此MDSN演练来设置调试.NET源代码.符号缓存已正确设置,检查"启用.NET Framework源步进"也是如此.

但随后,每当我想进入.NET代码时,系统都会提示我指定相关cs文件的位置.错误消息是 You need to find <filename>.cs to view the source for the current call stack frameThe debugger could not locate the source file <filename>.cs.

我被提议浏览文件(但我没有它)或查看反汇编(但我不希望这样).

如何进入.NET源代码?

小智 103

好吧,在我的情况下,我并没有尝试调试.Net框架,但我得到了同样的错误:无法找到.cs文件来调试.NET源代码.所以我必须在" 工具 - >选项 - >调试 - >常规 - >启用我的代码"下打开"仅启用我的代码"选项

按MS文档:

您可以将Visual Studio配置为自动切换系统,框架和其他非用户调用,并在调用堆栈窗口中折叠这些调用.

https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code

  • 很好的答案并解决了我的问题,但这将跳过该文件而不是进入它。如果目标是进入文件,可能需要另一个解决方案。 (2认同)

JBS*_*rro 41

检查Tools- > Options- > Debugging- > General- > Enable source server support神秘地使一切正常.我希望你也是如此

  • 主啊,为什么它不起作用?在尝试进入框架代码时,仍然会提示您浏览到源代码文件. (12认同)

小智 17

这花了我一个小时.我最后通过重置设置 - >工具 - >导入和导出设置 - >重置来修复它


Hom*_*ade 12

我已经尝试了上面的所有答案,但没有任何效果。

这为我解决了:

Debug -> Delete all Breakpoints

它解决了问题!导致这个问题的原因有很多。

  • 在尝试了 JIT 调试器设置的每一个组合、清理我的解决方案、重新启动 VS2019 数百次、修复它、重置我的所有设置等等之后,正是删除所有断点使我的“未找到源”错误消失,当尝试调试 XUnit 测试时。啊啊啊啊啊。谢谢你@HomeMade (2认同)

Eat*_*oes 10

这里的答案都在谈论忽略/避免源代码而不是实际进入它。

@JBSnorro是在正确的轨道上,但问题是 Microsoft 似乎没有发布您可能遇到的所有 .NET 符号/源。我不知道这是否是他们有意为之,但要进入 MS 源,他们需要发布每个程序集的每个版本,这是一项重大的后勤任务。

Tools-> Options-> Debugging-> General->Enable source server support将在许多情况下工作,但我发现例如mscorlib.dll4.6.1 缺少符号和/或反编译源。所以我不能像Dictionary.csTask.cs作为例子那样进入常见的源代码。由于 MS 符号服务器的源代码和符号可能一直在变化。当您阅读本文时,我的问题可能已解决?

当我在 Jetbrain 的 Rider 中调试相同的解决方案时,我可以毫无问题地查看并逐步浏览每个 .NET 程序集中的每个类。但是在VS中我只能进入某些课程而不能进入其他课程?

如果您真的致力于进入所有 .NET 源代码,您可以使用 Jetbrain 的 DotPeek 并将 .NET 程序集反编译为实际的 .cs 文件到您的磁盘。那么当你看到这个的时候

未找到源代码示例

您现在可以浏览您的磁盘到您使用 DotPeek 反编译的源代码。只要确保您反编译了您在项目中引用的相同程序集版本。否则,符号可能与正确的源代码行号不匹配。

相反,如果您只是想隐藏这个“找不到源”不断出现,并且不想进入没有来源的代码,请阅读@Alex Sherman的答案。您需要确定违规文件包含在哪个程序集,然后将该程序集名称添加到排除列表中。

深思熟虑,我不是 VS 的 Rider 粉丝。Rider 仍然是原始的,并且缺乏 VS 拥有的大量内置工具。然而!!我喜欢在这种情况下并排安装它,我知道我可以更深入地研究杂草。


Sha*_*ani 10

在构建之前清理解决方案为我解决了这个问题。

只需导航并点击:

  1. Build-> Clean Solution.
  2. Build-> Build Solution (Ctrl + Shift + B).


小智 5

转到“工具”->“选项”->“调试”-> 并确保“仅启用我的代码”已选中。

这对我有用。请务必投票支持“IT WORKS”