如何获取EntityFramework NuGet包的PDB文件?

时间:2015-08-19 20:19:20

标签: entity-framework entity-framework-6 pdb

我正在尝试在EntityFramework NuGet包(版本6.1.3)中调试StackOverflow。为了查看堆栈帧,我需要EntityFramework.DLL和EntityFramework.SqlServer.DLL的PDB文件。但是,我似乎无法让Visual Studio从MSFT符号源或从SymbolSource.org下载它(我可以获得其他系统PDB和NewtonSoft.json之类的东西)。 EF PDB可以在任何地方使用吗?

3 个答案:

答案 0 :(得分:19)

现在有了图片(因为我花了大约一个小时的试用而失败了)

  1. 获取DotPeek from Jetbrains(独立版本)

  2. 打开DotPeek - > File - > Open - >浏览到您的项目bin文件夹,然后打开EntityFramework.dll

  3. EntityFramework上的右键按钮,然后选择Generate Pdb... enter image description here

  4. enter image description here

    1. 转到导出它的文件夹并打开EntityFramework.pdb文件夹(我知道对了!)然后深入挖掘,直到找到文件EntityFramework.pdb并将其复制到bin文件夹(EntityFramework.dll旁边)。

    2. 转到Visual Studio - > DEBUG - > Options and Settings... - > Symbols然后将您的bin文件夹添加到Symbol file (.pdb) locations

    3. enter image description here

      1. 运行项目并祈祷这些断点变成成熟的红色....
      2. 编辑它有时会在optimized模式下开始运行EF,导致调试几乎无用,这是此问题的一个重点 - 如果发生这种情况

        1. 转到Visual Studio - > Debug - > General - > (在最底部)Use Managed Compatibility Mode。勾选并运行项目(如果它被优化然后取消并运行,然后再次勾选并运行,然后......)
        2. enter image description here

          1. 查看EF是否运行优化而不必等到达到断点转到Visual Studio - > Debug - > Windows - > Modules。然后当你运行解决方案模块(2)应该出现。点击它并找到EntityFramework.dll应该有一个列为Optimized(Yes = bad,No =您可以调试它)。
          2. enter image description here

            希望这可以节省你一些时间。

答案 1 :(得分:11)

下载源代码: entity framework on codeplex

下载按钮位于“源”选项卡上的子菜单中

下载后:

  • 构建解决方案/项目

  • 导航到bin目录 NB :它不在正常位置,设置为"..\..\bin\Debug\"。请参阅项目属性。

EntityFramework.pdb和EntityFramework.SqlServer.pdb都在那里。

另外可以想到,它可以默认使用或更容易使用。

答案 2 :(得分:4)

其中一种方法是使用dotpeek作为符号服务器(加载实体框架dll并添加从dotpeek设置复制的dotpeek serer地址) - 这种方法有什么好处,它自动生成pdb匹配使用的dll版本什么不是那么好 - 它不会包含来自源代码的原始评论等。