将NuGet的.pdb文件复制到输出目录

6
当我构建一个ASP.NET Core项目时,它仅复制自己的`.pdb`文件和所有已安装NuGet包的`.dll`文件到输出目录中。然而,它并不会复制它们的`.pdb`文件。我必须手动从`%UserProfile%\.nuget\packages`目录中选择它们。
我想知道是否有选项可以启用NuGet包的`.pdb`文件被复制到输出目录中?
1个回答

3
新的做法是越来越多地使用SourceLink,这允许在调试时按需下载源代码。

注意:在撰写本文时,仍存在缺失的功能,如Martin Ullrich所指出。

NuGet符号包和符号服务器

传统上,NuGet .nupkg文件中没有.pdb文件。

相反,.pdb文件被放置在NuGet符号包(以.symbols.nupkg结尾)中。

他们可以被托管在符号服务器(或本地文件系统)上,然后可以通过相应配置使用Visual Studio IDE。另请参见在Visual Studio调试器中指定符号(.pdb)和源文件
请注意,并非所有NuGet包发布者都创建符号包或使用SourceLink-如果您需要调试没有任何符号的开源库,也许您应该考虑贡献它们。

实际上,它们是我自己的包,包含.pdb文件,但使用 NuGet 符号包的替代方法(这对我来说是新的)听起来非常有趣,似乎是使用.pdb文件的正确方式。 - t3chb0t
4
我认为现在包括pdb文件是更好的处理方式,可以使用Source Link将PDB链接到源代码本身。这样可以消除对符号服务器的依赖。 - Jon Skeet
1
这实际上是一个缺失的功能,应该在2.1.300+版本中可用。请参阅跟踪问题https://github.com/dotnet/sdk/issues/1458。 - Martin Ullrich
如果答案中的方法对您无效,我需要了解到底发生了什么。但请注意,并不是所有内容都需要出现在.NET Core的输出目录中 - 我预计它可能不存在,而是在发布目录中。因此,请尝试运行 dotnet publish 并查看是否有所改善。 - Jon Skeet
请再次提出一个新问题,描述您的确切情况 - 您尝试了什么以及哪些方面不起作用。通常这只需要开箱即用。 - Jon Skeet
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接