我在我的项目中添加了一个NuGet库。我还从GitHub克隆了库代码,并在调试中进行了编译。
如何让我的项目使用PDB,这样我就可以进入库中的代码?
我可以在保留对NuGet库的引用的情况下执行此操作吗?我可以删除NuGet引用,然后添加一个对库项目的引用。
我尝试在VS符号设置中添加到PDB的路径,但没有起作用(我在调试时在VS中打开了库的源代码文件,并将断点放在我知道它会命中的位置,但它没有)

发布于 2017-09-23 16:56:45
如果你幸运的是开放源码软件项目将源代码和符号包发布到SymbolSource,那么你可以简单地将它们添加到符号源中,在调试器设置中关闭“仅我的代码”并进行调试。
如果你没有那么幸运,但如果作者至少已经将PDB添加到Nuget包本身,那么调试器可能会提示你指向源代码,指向您本地的git代码库,然后进行调试。
如果你很懒(就像我在大多数情况下一样),使用etup dotPeek as a Symbol Server或者在Resharper中使用“进入反编译的代码”,只需在运行时反编译开放源码库就可以调试它们。你不会得到最漂亮的资源,但在许多情况下,它可以完成工作。除了dotPeek,Red-Gate Reflector Pro也有类似的功能。
从本地源代码中,您可以构建自己的NuGet包的调试版本。如果包含PDB,并且源代码在本地可用,Visual Studio将自动拾取它们。您可以添加一个本地文件夹作为NuGet源,它将允许您临时选择您的自定义版本。
最后的办法是在本地删除NuGet包,并完全切换到本地构建的源代码。而且它需要对本地项目进行一些重大的更改,并且您不能真正提交您的努力的中间结果。
https://stackoverflow.com/questions/46377573
复制相似问题