在 Visual Studio 2015 中,如果我有源代码,我可以非常轻松地调试外部库。我只需在 VS 中打开该库的源代码文件并设置断点,然后我只需要在“模块”视图中加载程序集(或模块),我可以在外部库上直接选择“加载符号”(和以及“始终加载符号”(如果需要)。
现在外部库中设置的断点可以工作了。
如何在 Rider IDE 中实现相同的效果?是否可以使用 Rider 调试外部库?
严格来说,Rider 目前还不支持此功能,但计划在 2017.3 开始支持。 这里是 JetBrains Youtrack 上的一个问题,可供观看和投票。
自 Rider 2017.3.1 (173.3994.2442) 版本起,该功能已默认可用。
默认启用外部源调试。如果您希望调试器忽略库代码,可以禁用它。
您还可以在反编译代码中设置断点:
要从源代码导航到外部代码中的符号,您可以使用几乎所有导航和搜索功能 - 如果导航目标位于库代码中,JetBrains Rider 将自动反编译并将其显示在编辑器中。跳转到库代码的最简单方法是按住 Ctrl 键并单击库符号的任何用法或按 F12。
如果您在调试外部符号时遇到问题,您可以在
%USERPROFILE%\.Rider2023.2\config\resharper-host\DecompilerCache
处删除反编译缓存(使用您的 Rider 版本)。
了解更多信息:
您可以将解决方案中的 lib dll 替换为 lib 源中的 dll。
这里是一个例子:如何在现有项目中调试OrchardCore源代码.
Orchard Core 是开源的,可以在您的 .net 项目中使用。你可以运行你的项目和orchard core官方项目,然后在oc中附加你的项目。
调整 nuget.config 包资源以从本地目录获取文件:
<add key="local-packages" value="../myNugetPackages" />
将本地包版本添加为 Rider 打开的项目中的依赖项。