我正在尝试在EntityFramework NuGet包(版本6.1.3)中调试StackOverflow。为了查看堆栈帧,我需要EntityFramework.DLL和EntityFramework.SqlServer.DLL的PDB文件。但是,我似乎无法让Visual Studio从MSFT符号源或从SymbolSource.org下载它(我可以获得其他系统PDB和NewtonSoft.json之类的东西)。 EF PDB可以在任何地方使用吗?
答案 0 :(得分:19)
现在有了图片(因为我花了大约一个小时的试用而失败了)
获取DotPeek from Jetbrains(独立版本)
打开DotPeek
- > File
- > Open
- >浏览到您的项目bin
文件夹,然后打开EntityFramework.dll
转到导出它的文件夹并打开EntityFramework.pdb
文件夹(我知道对了!)然后深入挖掘,直到找到文件EntityFramework.pdb
并将其复制到bin
文件夹(EntityFramework.dll
旁边)。
转到Visual Studio
- > DEBUG
- > Options and Settings...
- > Symbols
然后将您的bin
文件夹添加到Symbol file (.pdb) locations
编辑它有时会在optimized
模式下开始运行EF,导致调试几乎无用,这是此问题的一个重点 - 如果发生这种情况
Visual Studio
- > Debug
- > General
- > (在最底部)Use Managed Compatibility Mode
。勾选并运行项目(如果它被优化然后取消并运行,然后再次勾选并运行,然后......)答案 1 :(得分:11)
下载源代码: entity framework on codeplex
下载按钮位于“源”选项卡上的子菜单中
下载后:
构建解决方案/项目
导航到bin目录 NB :它不在正常位置,设置为"..\..\bin\Debug\"
。请参阅项目属性。
EntityFramework.pdb和EntityFramework.SqlServer.pdb都在那里。
另外可以想到,它可以默认使用或更容易使用。
答案 2 :(得分:4)
其中一种方法是使用dotpeek作为符号服务器(加载实体框架dll并添加从dotpeek设置复制的dotpeek serer地址) - 这种方法有什么好处,它自动生成pdb匹配使用的dll版本什么不是那么好 - 它不会包含来自源代码的原始评论等。