我使用Visual Studio 2019和.NET Core 3 Web应用程序。我想调试.NET Core源代码,因此当出现错误时,我可以深入研究代码并更详细地检查它。由于我找不到关于如何操作的确切描述(即使在Microsoft文档站点上),我将尝试总结这里到目前为止我所知道的内容。 我在Visual Studio中有以下选项:
前两个选项是互斥的。我想我应该选择第二个选项,虽然我不明白天气“.NET框架”在这个选项中包括.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选项:“回到Git Credential manager ...”并重新开始。结果相同。 当然我广泛使用谷歌搜索并花了很长时间试图找到解决方案,但我错过了一些东西。通过使用.NET Core源代码,我非常感谢所提到的选项的功能以及如何进行调试。
也许this issue可以帮助您解决难题。
就像vancem在该问题中描述的那样,您需要为调试.net核心源做的所有事情是:
1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框。
2.确保已设置(工具 - >选项 - >调试 - >符号设置 - > Microsoft符号服务器)复选框
3.确保选中(工具 - >选项 - >调试 - >启用源链接支持)复选框
“找不到GenericHostBuilderExtensions.cs”。
至于为什么你在这里失败了。我认为这与我上面提到的问题类似。对于.net core 3.0预览版,它的一些库当前在github中没有源链接,因此vs无法获取它们。 (就像2017年的.net核心2.0,现在已经修复)
实际上,如果你按照上面的选项,你会发现you can debug well .net core 2.x web-app
,但可能会失败for not finding source links for .net core 3.0
。
作为解决方法:
1.您可以尝试从git手动获取源代码,然后转到解决方案 - >属性 - >调试源文件,然后将您的目录添加到'包含源代码的目录'中,以检查它是否对某些情况有帮助。 (由vancem详细描述,感谢他)
2.可以找到GenericHostBuilderExtensions.cs的GenericHostBuilderExtensions.cs
来源here。我再现了同样的问题,并通过下载xx.cs并在调试过程中找到它来解决它。
但我不得不说这种方式需要一些时间。由于不仅此文件没有源文件,我们将遇到类似的问题,必须通过从git获取相应的源来解决它,除非.net core3.0中的所有源都有其源链接。但这可能需要一些时间,对此造成的不便表示歉意。我建议你可以在github上发布并在这里分享链接。对此感兴趣的会员将有助于投票。
希望以上都有帮助。