无法找到用于调试.NET 源代码的.cs 文件

我尝试设置调试。NET 源代码,方法是遵循此 MDSN 演练。符号缓存设置正确,“启用”选项也是如此。NETFramework 源代码单步执行’。

但随后,无论何时我想进入。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 源代码?

129878 次浏览

检查 Tools-> Options-> Debugging-> General-> Enable source server support神秘地让一切工作。我希望你也一样

这也花了我一个小时的时间。我最终通过重置设置来修复它 - > 工具-> 导入和导出设置-> 重置所有设置

在我的案例中,我并没有试图调试。但是我得到了同样的错误: 无法找到用于调试.NET 源代码的.cs 文件。那么 我必须在下面打开“ Enable just my code”选项:
工具-> 选项-> 调试-> 常规-> 启用我的代码

按医学文件:

可以将 VisualStudio 配置为自动跨越系统、框架和其他非用户调用,并在调用堆栈窗口中折叠这些调用。

Https://learn.microsoft.com/en-us/visualstudio/debugger/just-my-code

如果错误来自于查找“ nullable.cs”或其他核心源文件:

可以使用 Debug -> Options -> Debugging -> Symbols禁用特定模块的符号,然后在底部的 Specify Excluded Modules上禁用。

这对于 希望禁用“ Just My Code”以单步执行 PDB 所用的其他程序集的情况非常有用。Visual Studio 提供了 mscorlib.dll的符号,但是 没有包含源代码,所以有时候进入一些东西会找到一个“ nullable.cs”或者其他核心源文件。

这里的答案都是忽略/避免源代码,而不是真正地进入源代码。

@JBSnorro是在正确的轨道上,但问题是微软似乎没有发布所有的。NET 符号/源。我不知道这是否是他们有意为之,但进入微软的来源,他们需要发布每个组装的每个版本,这是一个大的后勤任务。

Tools-> Options-> Debugging-> General-> Enable source server support在许多情况下都可以工作,但是我发现例如 mscorlib.dll在4.6.1中缺少符号和/或反编译源。因此,我不能以 Dictionary.csTask.cs这样的常见源代码作为例子。由于 MS 符号服务器的源和符号可能一直在变化。我的问题也许在你看到这封信的时候就解决了?

当我在 Jetbrain’s Rider 中调试相同的解决方案时,我可以看到并逐步通过每个。NET 程序集没有问题。但是在 VS 中我只能进入一些类,而不能进入其他类?

如果你真的决心踏入。NET 源代码,您可以使用 Jetbrain 的 DotPeek 并反编译。NET 程序集设置为实际。Cs 文件到你的磁盘。当你看到这个,

Example of source code not found

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

相反,如果你只是想隐藏这个“源没有发现”不断出现,你不介意进入没有源的代码,阅读 @Alex Sherman的答案。您需要找出包含有问题文件的程序集,然后将该程序集名称添加到排除列表中。

值得深思的是,我并不是一个骑士的球迷,而对于 VS 来说,骑士仍然是一个触摸生和缺乏疯狂数量的内置工具 VS 已经。但是! !我喜欢把它并排安装在这样的情况下,我知道我可以更深入的杂草。

清除 之前的解决方案为我解决了这个问题。

只需导航并点击:

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

有同样的问题,上面提出的解决方案都没有帮助我解决这个问题。发生于 VS 2017。当我在 VisualStudio2019中运行该项目时,一切正常。所以试着在其他环境中运行它。希望这个答案能对某些人有所帮助

我在更新项目中的 NuGet 包时遇到了这个错误,而在解决方案的其他项目中却没有更新它。

使用解决方案的 NuGet Manager 并使用合并功能(它确保解决方案中的所有项目使用相同的版本)为我解决了问题。

我试了上面所有的答案,都没用。

这解决了我的问题:

- > Delete all Breakpoints

它解决了问题! 这么多不同的事情导致了这个问题。

在我的情况下,我结束了重新命名类。也许是和其他模块搞混了。一旦我把它重新命名,我就可以介入。

我在程序属性部分使用 复选框来创建单实例应用程序之后出现了这个错误:

Make single instance application

奇怪的是,在此之前它没有抛出错误。这个程序在每次启动时都会突然崩溃,并且不会在显示我没有代码错误的行中断。

在取消选中“ Make single instance application”之后,程序立即启动。

转到 Tools-> Options-> Debug-> 并确保“ Enable Just My Code”选中 true。

这对我很有用,一定要给它投赞成票

我也有同样的问题 仅启用我的代码启用源服务器支持都已经检查过了。

但我的问题不是这个。 Csproj 文件有一个没有开始标记的额外标记。

我移除了它,问题解决了。

希望对面临这个问题的人有所帮助。