我使用Visual Studio 2019和.NET Core 3 Web应用程序。我想调试.NET Core源代码,因此当发生错误时,我可以深入研究代码并进行更详细的检查。由于找不到确切的说明(即使在Microsoft文档站点上),我将在这里尝试总结到目前为止的知识。
我在Visual Studio中有以下选项:
前两个选项是互斥的。我想我应该选择第二个选项,尽管我不理解“ .NET Framework”中的天气是否包括.NET Core?
现在.NET Core是开源的并且可以在GitHub上使用,所以我不明白第3个还是第4个选项。第三个应该允许我从Microsoft Symbol Servers中获取源代码(符号包括源吗?),而第四个应该允许我从GitHub中获取源代码?我需要一个吗?
首先,我在Main方法的CreateHostBuilder上放置一个断点,选择第三个选项并运行应用程序。击中断点后,我继续进入代码(F11),直到出现一条消息,指出“找不到GenericHostBuilderExtensions.cs”。它使我可以浏览它,但是我不知道在哪里可以找到它。
让我们再试一次,这次选择第4个选项(并取消选择第3个)。现在,在断点被击中之后,VS让我通过Source Link下载上述文件。接受,但结果是消息“源链接错误:Azure DevOps:所有帐户的身份验证失败。使用'文件->帐户设置...'添加新帐户或刷新凭据。”好了,我已经使用Microsoft帐户登录了,我该怎么办?
我再次重复一遍,这次选择第3个和第4个选项。结果是一样的。
现在,我选择另一个Source Link选项:“ Fall back to Git Credential manager ...”,然后重新开始。结果相同。
当然,我广泛地搜索了Google,并花了很多时间试图找到解决方案,但我缺少了一些东西。非常感谢您提供有关上述选项的功能以及如何通过进入.NET Core源代码进行调试的帮助。
答案 0 :(得分:0)
也许this issue可以帮助您 解决你的难题。
就像该问题中的vancem所描述的那样,调试.net核心源代码所需要做的就是:
1。取消选中(工具->选项->调试->仅我的代码)复选框。
2。确保已设置(工具->选项->调试->符号设置-> Microsoft Symbol Servers)复选框
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手动获取源代码,然后转到解决方案->属性->调试源文件,然后将目录添加到“包含源代码的目录”中,以检查是否在某些情况下有所帮助。 (感谢万斯姆对他的详细介绍)
2.GenericHostBuilderExtensions.cs的GenericHostBuilderExtensions.cs
的源可以找到here。我重现了同样的问题,并通过下载xx.cs进行了解决,并在调试过程中找到了它。
3。但是我不得不说这种方式需要一些时间。因为不仅此文件没有源文件,否则我们将遇到类似的问题,并且必须通过从git获取相应的源来解决它,除非.net core3.0中的所有源都有其源链接。但这可能需要一些时间,对于由此带来的不便,我们深表歉意。我建议您可以将其发布在github上并在此处共享链接。对它感兴趣的成员将帮助投票。
希望以上所有都对您有帮助。