如何使用本地文件夹中的 nuget 符号包进行调试?

Rez*_*oir 3 debug-symbols symbol-server visual-studio nuget

我的服务器上有一个文件夹,用于托管我的 nuget 包。这些包不包含源代码或符号 (PDB)。这很好用。

最近,我在本地服务器上设置了另一个文件夹来托管 nuget 包中程序集的符号文件。

我已将符号文件夹的路径添加到 Visual Studio,当我将 PDB 文件放在文件夹中时,它们会在 VS 中正确加载,并且我可以在调试时进入代码。如果我查看 VS 中的符号加载信息,我可以看到 PDB 是从我服务器上的符号文件夹下载的,确认一切正常。

我相信做这种事情的首选方法是让 nuget 在创建 nuget 包的同时创建一个符号包,我想转向这种工作方式。

创建符号和 nuget 包不是问题。问题是,当我(使用 nuget)将符号包推送到我的符号文件夹时,VS 无法使用它。当我尝试进入我的 nuget 包时,VS 尝试找到 PDB,我可以看到它在我的符号文件夹中查找,但找不到 PDB,这是有道理的,因为它包含在 nuget 符号包中。

谁能解释我缺少什么?

Leo*_*SFT 5

如何使用本地文件夹中的 nuget 符号包进行调试?

AFAIK,你不能使用本地文件夹作为符号服务器,我之前试过它没有用,和你一样的错误。那是因为.pdb文件被包装在符号包中,Visual Studio 无法.pdb直接访问符号包中的文件。

您应该设置自己的 SymbolServer将其上传到 symbolsource.com,在设置 SymbolServer 并上传带有符号的 nuget 后,您必须配置Visual Studio 调试器

此外,如果您不想设置自己的 SymbolServer 或将其上传到符号服务器,这里有一个轻量级的解决方案

  1. 将 pdb 和源代码文件与 dll 一起放在 NuGet 包中
  2. 将源代码添加到引用包的解决方案的Debug Source Files(右键单击Solution,选择Properties...Common Properties...Debug Source Files,并添加相关二进制引用的根源目录。

有关第 1 步和第 2 步的更多详细信息,请参阅此线程

然后你可以使用本地文件夹调试这个 nuget 包:

在此处输入图片说明

希望这可以帮助。

  • 你好,Leo,不幸的是,你的两种解决方法对我来说都不太实用。目前唯一的解决方案似乎是设置您自己的符号服务器。我已向 Microsoft 报告了此问题,他们正在调查该问题。如果您想投票,请点击以下链接!https://developercommunity.visualstudio.com/content/problem/238550/nuget-symbols-package-not-understood-by-vs.html (2认同)