如何使用 .pdb 文件调试库?

How can I debug the library using .pdb file?

我一直在寻找**调试 BaseLibrary 等外部项目**的方法。所以我还没有看到这样的代码结构,也没有研究过它。我想我可以使用输出中存在的 .pdb 文件 来调试这些项目。

项目结构是这样的。我将调试突出显示的最后一个项目。我浏览了这些链接

https://docs.microsoft.com/en-us/visualstudio/debugger/specify-symbol-dot-pdb-and-source-files-in-the-visual-studio-debugger?view=vs-2019

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/sourcelink?pivots=windows

我添加了对 pdb 文件的引用。我不确定它是否格式不正确 pdb 文件的引用是 C:\Workspace\Xamarin.IntegrationLibrary\Output\netstandard2.1 如下图所示。

但他们没有帮助我满足我的要求,因为它是在谈论调试我在当前项目中安装的 NuGet 包。我想调试 外部项目 。目前,我可以导航到基础库的程序集,但无法导航到源代码或方法。如下图所示。

我什至尝试在 dnSpy 中调试,但我无法为此提供可执行文件。此外,这并不是我所需要的,因为我必须使用 pdb 在项目中进行调试。

一些解决方案说双击模块中的 DLL 打开源代码。好吧,我试过了,你可以看到下面的截图

我能够加载 .pdb 符号但是我想导航和调试基础库的源代码 和来自 xamarin.xyzApp 项目 的集成库。我不知道如何进行。有什么建议吗?

也许您可以尝试使用 dnspy (https://github.com/dnSpy/dnSpy) 进行调试...即使没有源代码,它也可以调试大多数 .net 项目,因为它可以按需反编译。您可以附加到 运行 进程或从 dnspy 调试器启动。 Debug/windows/modules找到dll,双击其中任意一个查看源代码并设置断点

我通过在 BaseLibrary(我们要调试的任何库)的 Directory.Build.props 中添加以下代码来解决这个问题重启你的visual studio

<PropertyGroup>
    <IncludeSymbols>true</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

通过浏览您要调试的每个项目的属性->构建->高级检查项目文件的属性,并检查调试信息是否为嵌入式重建 BaseLibrary解决方案并检查.snupkg文件在基础库的Output[中生成=24=]文件夹。