调试.NET核心源代码 [英] Debug .NET Core source
问题描述
我使用Visual Studio 2019和.NET Core 3 Web应用程序。我想调试.NET Core源代码,这样当出现错误时,我就可以深入代码并更详细地检查它。由于我找不到关于如何做到这一点的确切描述(即使在Microsoft文档站点上也是如此),因此我将尝试在这里总结一下我到目前为止所知道的内容。
我在Visual Studio中有以下选项:
- 仅启用我的代码
- 启用.NET Framework源代码单步执行
- 启用源服务器支持
- 启用源链接支持
前两个选项是互斥的。我想我应该选择第二个选项,尽管我不了解此选项中是否包含.NET Core?
现在,由于.NET Core是开源的,并且可以在GitHub上获得,我不明白第三种选择与第四种选择之间的区别。第三个应该允许我从Microsoft符号服务器拉取源代码(符号包括源代码吗?)而第四个应该允许我从GitHub获取源代码?我需要其中一个吗?
首先,我在main方法中为CreateHostBuilder设置了一个断点,选择第三个选项并运行应用程序。在命中断点之后,我一直单步执行代码(F11),直到出现一条消息,提示";GenericHostBuilderExtensions.cs未找到";。它让我可以浏览它,但我不知道在哪里可以找到它。
让我们再试一次,这次选择第四个选项(并取消选择第三个)。现在,命中断点后,Visual Visual Studio让我通过Source Link下载前面提到的文件。我接受,但结果是消息
源链接错误:Azure DevOps:所有帐户的身份验证失败。使用‘文件->帐户设置.’若要添加新帐户或刷新凭据,请执行以下操作。
嗯,我是使用我的Microsoft帐户登录的。我还应该做什么?
我再重复一遍,这次选择了第三个和第四个选项。结果相同。
现在我选择另一个源链接选项:";回退到Git凭据管理器.并重新开始(&q;)。结果相同。
当然,我广泛地搜索并花了相当长的时间试图找到解决方案,但我遗漏了一些东西。如果您能帮助我了解所提到的选项到底有什么作用,以及如何通过单步执行.NET核心源代码进行调试,我将不胜感激。
推荐答案
也许this issue可以提供帮助 解决您的难题。
就像vancem在该问题中所描述的那样,调试.Net核心源代码所需做的全部工作就是:
1.取消选中(工具->选项->调试->仅我的代码)复选框。
2.确保已选中(工具->选项->调试->符号设置->Microsoft符号服务器)复选框
3.确保选中(工具->选项->调试->启用源代码链接支持)复选框
"找不到GenericHostBuilderExtensions.cs"。
至于你为什么在这里不及格。我认为这与我上面提供的问题类似。对于.net core 3.0预览版,它的一些库目前在GitHub中没有源代码链接,所以VS无法获取它们。(就像2017年的.Net Core 2.0一样,现在已经修复了)
实际上,如果您按照上面的选项操作,您将找到you can debug well .net core 2.x web-app
,但可能失败for not finding source links for .net core 3.0
。
1.您可以尝试从git手动获取源代码,然后转到Solution->Properties->Debug Source Files,然后将您的目录添加到"包含源代码的目录"中,以检查它是否对某些情况有帮助。(感谢他,由Vancem详细描述)作为解决办法:
2.GenericHostBuilderExtensions.cs
GenericHostBuilderExtensions.cs
GenericHostBuilderExtensions.cs的源代码here我重现了同样的问题,下载xx.cs调试时查找可以解决。
希望以上所有内容都有帮助。
这篇关于调试.NET核心源代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!