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

标签 c# .net debugging nuget pdb-files

我正在尝试使用 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 包附带的源文件,我可以设置断点,但调试器永远不会在断点处停止。因此,在我看来,PDB 根本没有被使用。

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

Enable Just My Code 未选中。

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

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

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

最佳答案

尝试在调试设置中禁用 Just my code,然后在 Debug -> window -> modules 中导航并加载外部包的符号

关于c# - Visual Studio 忽略输出文件夹中的 PDB 文件(来自 NUGET 包),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100912/

相关文章:

c# - 强制 Visual Studio 2010 使用字符串而不是字符串

c# - MVVM的C#代码优先延迟加载

c# - 何时创建自己的 IEnumerable 类

windows - 在 Visual Studio 的内存地址观察一个类对象

python - Visual Studio Code - 没有 ptvsd 的远程调试

.net - 调试 IIS 进程的 CPU 使用率过高

c# - 如何在 ClickOnce 中处理应用程序更新

C# 处理 CSV 文件

c# - JVM (Java) 或 CLR (C#) 中的运行时异常处理(如除以零)

c# - 试图让方法等待内部事件处理完成