.Net符号包,Nuget和在Artifactory 4.x中设置符号服务器

时间:2018-03-29 15:05:37

标签: .net nuget artifactory visual-studio-debugging debug-symbols

我需要设置一个.Net符号服务器来调试内部nuget包,我们不想将nuget包或调试符号发布到公共repo。我们目前使用Artifactory 4来托管我们的内部nuget repos,所以我也想用它来托管一个符号服务器。

我已阅读本指南https://www.jfrog.com/confluence/display/RTF4X/Microsoft+Symbol+Server并提出一些问题:

  • 我们不使用IIS,很好,我可以将“如何做虚拟目录”转换为我们的Web服务器,但为什么需要这样做呢?为什么我不能只设置一个新的nuget存储库并将符号包放在那里?
  • .Net不是我的专长。我尝试使用-symbols选项生成一个nuget包,它会生成一个.symbols.nupkg,看起来像是正确的内容。然后我尝试将它添加到一个新的nuget repo中,虽然我可以在artifactory日志中看到visual studio正在请求调试包我最终在我的本地符号缓存FailedLoads目录中的文件说它不能找到我的包的.pdb
  • 如果我告诉MSBuild生成调试符号,我会得到一个完整的目录结构,其中包含一些GUID,然后是我的dll和pdb文件。与nuget符号包完全不同。什么是'正确'的方式,我使用哪种方式影响我如何访问这些符号进行调试?

1 个答案:

答案 0 :(得分:0)

没有源代码VS无论它的Nuget包或.NET Framework dll都无法调试它。

Pdb文件只包含调试信息,就像可执行代码和源代码之间的映射一样。使用pdb VS调试器知道每条指令在源文件中的位置,但仍需要有源文件来显示代码。

当找不到源文件时,VS调试器会显示对话框以浏览源文件。因此,如果没有源代码,VS无法正确调试它。