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

时间:2018-04-20 15:55:30

标签: visual-studio nuget debug-symbols symbol-server

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

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

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

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

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

任何人都可以解释我缺少的东西吗?

1 个答案:

答案 0 :(得分:1)

  

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

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

您应该setup your own SymbolServerupload it to symbolsource.com,在设置SymbolServer并使用符号上传nuget后,您必须配置Visual Studio debugger

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

  1. Put the pdb and source code file in the NuGet package alongside the dll
  2. 将源代码添加到调试源文件中以获取引用该包的解决方案(右键单击Solution,选择Properties ... Common Properties ... Debug Source Files,并添加根源目录相关的二进制参考。
  3. 有关步骤1和步骤2的详细信息,请参阅this thread

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

    enter image description here

    希望这有帮助。