3

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

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

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

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

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

谁能解释我错过了什么?

4

1 回答 1

5

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

AFAIK,您不能将本地文件夹用作符号服务器,我之前尝试过但它不起作用,得到与您相同的错误。那是因为.pdb文件被包装在符号中,Visual Studio 无法.pdb直接访问符号包中的文件。

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

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

  1. 将 pdb 和源代码文件放在 dll 旁边的 NuGet 包中
  2. 将源代码添加到引用包的解决方案的调试源文件中(右键单击解决方案,选择属性...通用属性...调试源文件,并添加相关二进制引用的根源目录。

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

然后您可以使用本地文件夹调试此 nuget 包:

在此处输入图像描述

希望这可以帮助。

于 2018-04-23T02:52:40.327 回答