Visual Studio 忽略输出文件夹中的 PDB 文件(来自 NUGET 包)

Visual Studio ignoring PDB files in output folder (from NUGET package)

我正在尝试使用 VS2015 调试通过 nuget 包使用的 C# 代码。该包包含 DLL、PDB 和 DLL 的源代码,结构如下(由 Nuget 文档建议):

> lib
    > portable.etc.etc
        > x.dll
        > x.pdb
> src
    > *.cs
    > **/*.cs (etc.)
> x.nupkg

在我的应用程序的 bin/Debug 文件夹中,我可以看到用 DLL 复制出来的 .pdb 文件。根据我的理解(关于 Visual Studio 调试器的文档),调试器应该在与 DLL 相同的文件夹中查找同名(或匹配哈希)的 PDB。

当我使用此配置设置断点并尝试进入 nuget 包的代码时,文件资源管理器打开要求我查找源文件。如果我对 nuget 包附带的源文件执行 select,我可以设置断点,但调试器永远不会在断点上停止。因此,在我看来,PDB 根本没有被使用。

在Debug中编译消费程序,在Debug配置中也构建了nuget包。

Enable Just My Code 未选中。

如何Visual Studio使用 nuget 包中的 PDB?

------------更新-----------------

在修复 VS 中默认设置的一些古怪配置后,使用 bin/Debug 中的 PDB 获得了它。 (地址级调试关闭)。但是,它仍然让我在文件资源管理器中搜索源文件。 VS 没有办法自动打开该源文件,还是手动打开文件是我的 nuget 包消费者必须承担的负担? 澄清一下,PDB 是自动加载的。我想自动加载 C# 源文件,VS 让我在文件资源管理器中手动查找。

尝试在调试设置中禁用仅我的代码,然后在调试中导航 -> window -> 模块并加载外部包的符号

您需要确保未选中 "Enable Just My Code" 以单步执行第三方 .pdb 文件。

Go to: Tools -> Options -> Debugging -> Uncheck "Enable Just My Code"

如果可用且匹配,它将从 pdb 中读取源信息。 pdb 文件应该匹配相应的 dll 文件才能正常工作,这意味着来自相同的构建。