我尝试按照此 MDSN walkthrough 设置调试 .NET 源。符号缓存设置正确,检查“启用 .NET Framework 源单步执行”也是如此。
但随后,每当我想进入 .NET 代码时,都会提示我指定相关 cs 文件的位置。错误消息是 You need to find <filename>.cs to view the source for the current call stack frame
和 The debugger could not locate the source file <filename>.cs
。
我被提议浏览文件(但我没有)或查看反汇编(但我不想要那个)。
如何进入 .NET 源代码?
好吧,就我而言,我并没有尝试调试 .Net 框架,但我遇到了同样的错误:找不到用于调试 .NET 源代码的 .cs 文件。所以我不得不打开“仅启用我的代码”选项:工具->选项->调试->常规->仅启用我的代码
根据 MS 文档:
您可以将 Visual Studio 配置为自动跳过系统、框架和其他非用户调用,并在调用堆栈窗口中折叠这些调用。
https://docs.microsoft.com/en-us/visualstudio/debugger/just-my-code
检查 Tools
-> Options
-> Debugging
-> General
-> Enable source server support
神秘地使一切正常。我希望你也一样
这也花了我一个小时。我最终通过重置设置 -> 工具 -> 导入和导出设置 -> 重置所有设置来修复它
我已经尝试了上面的所有答案,但没有任何效果。
这为我解决了它:
Debug
-> Delete all Breakpoints
它解决了这个问题!很多不同的事情导致了这个问题。
在构建之前清理解决方案为我解决了这个问题。
只需导航并单击:
构建 -> 清洁解决方案。构建 -> 构建解决方案(Ctrl + Shift + B)。
这里的答案都是关于忽略/避免源代码而不是实际介入它。
@JBSnorro
处于正确的轨道上,但问题是 Microsoft 似乎并未发布您可能遇到的所有 .NET 符号/源。我不知道这是否是他们故意的,但要进入 MS 源,他们需要发布每个程序集的每个版本,这是一项艰巨的后勤任务。
Tools
-> Options
-> Debugging
-> General
-> Enable source server support
在许多情况下都可以使用,但我发现例如 4.6.1 的 mscorlib.dll
缺少符号和/或反编译的源代码。因此,我无法以 Dictionary.cs
或 Task.cs
之类的常见源代码为例。 由于 MS 符号服务器的源 &符号可能一直在变化。在您阅读本文时,我的问题可能会得到解决?
当我在 Jetbrain 的 Rider 中调试相同的解决方案时,我可以毫无问题地查看并逐步遍历每个 .NET 程序集中的每个类。但是在 VS 中,我只能进入某个班级而不能进入其他班级?
如果您真的致力于进入所有 .NET 源代码,您可以使用 Jetbrain 的 DotPeek 并将 .NET 程序集反编译为实际的 .cs 文件到您的磁盘。那么当你看到这个时,
https://i.stack.imgur.com/hxo7W.png
您现在可以浏览您的磁盘,找到您使用 DotPeek 反编译的源代码。只需确保您反编译了您在项目中引用的相同程序集版本。如果不是,则符号可能与正确的源代码行号不匹配。
相反,如果您只是想隐藏此“找不到源”以防止其不断出现,并且您不想进入没有源的代码,请阅读 @Alex Sherman
的答案。您需要确定违规文件包含在哪个程序集中,然后将该程序集名称添加到排除列表中。
深思熟虑,我不是 VS 骑士的粉丝。 Rider 仍然很原始,缺乏 VS 所拥有的大量内置工具。然而!!在我知道我可以深入杂草的情况下,我喜欢将它并排安装。
转到工具 -> 选项 -> 调试 -> 并确保“仅启用我的代码”被选中。
这对我有用。确保支持 IT WORKS
如果错误来自查找“nullable.cs”或其他一些核心源文件:
您可以使用 Debug -> Options -> Debugging -> Symbols
禁用特定模块的符号,然后使用底部的 Specify Excluded Modules
。
这对于您确实想要禁用“仅我的代码”以进入您拥有 PDB 的其他程序集的情况很有用。我认为 Visual Studio 带有 mscorlib.dll
的符号,但 不 包含源代码,因此有时单步执行会查找“nullable.cs”或其他一些核心源文件。
有同样的问题,上述解决方案都没有帮助我解决问题。发生在 VS 2017 中。当我在 Visual Studio 2019 中运行项目时,一切正常。所以只是尝试在其他环境中运行它。希望这个答案会对某人有所帮助
在项目中更新 NuGet 包时出现此错误,而在解决方案的其他项目中缺少更新它。
转到解决方案的 NuGet 管理器并使用合并功能,确保解决方案中的所有项目使用相同的版本,为我解决了问题。
就我而言,我最终重命名了班级。也许它与其他模块混淆了。一旦我重命名它,我就可以介入。
我遇到了同样的问题。 Enable Just My Code 和 Enable source server support 已被选中。
但我的问题不是这样。 csproj 文件有一个没有开始标签的额外标签。
我删除了它并解决了问题。
希望它可以帮助面临这个问题的人。
在程序属性部分中使用 checkbox to make single instance application 后出现此错误:
https://i.stack.imgur.com/8gjec.png
奇怪的是在此之前它没有抛出错误。该程序每次启动时都会突然崩溃,并且不会在显示我没有代码错误的行上中断。
取消选中“制作单实例应用程序”后,程序立即启动。