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 文件才能正常工作,这意味着来自相同的构建。
我正在尝试使用 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 文件才能正常工作,这意味着来自相同的构建。