【问题标题】:Error "mscoreei.dll not found" in VS2015 debuggingVS2015调试报错“mscoreei.dll not found”
【发布时间】:2016-04-01 13:09:27
【问题描述】:

当我尝试调试转储文件时出现错误:

找不到mscoreei.dll

在小型转储中找不到 mscoreei.dll。您需要加载二进制文件才能找到当前堆栈帧的来源。

我有一个 C# 项目,有时会挂在其他计算机上。每次挂起时,“procdump”应用程序都会为我创建 minidump 文件。以前我在VS2015中可以正常打开这个dump文件,这显示我在源代码中卡住了。

一切正常,直到我在存储库中进行了“清理”。我没有在代码中添加任何行,我只是清理了存储库,我所有的 .pdb 文件都被删除了。我再次构建项目以恢复 .pdb 文件。但是现在当我尝试调试转储文件时,VS2015 显示页面“未找到二进制文件”,上面写有错误消息。

我没有对源代码进行任何更改。我没有修改我的环境。当我清理存储库时,调试停止工作。

当我检查“堆栈帧”列表时,“mscoreei.dll!7311ffcc”之后出现的所有内容都具有格式“[下面的帧可能不正确和/或丢失,没有为 文件名]"。

【问题讨论】:

  • 即包含CLR的dll
  • 好吧,如果我创建一个新项目并为此项目创建一个新的转储文件,那么一切正常。
  • 那么很可能你在那个解决方案中搞砸了一些导致问题的东西
  • 拥有匹配的 PDB,其时间戳与您从中获取 minidump 的机器上的二进制文件完全匹配是至关重要的。你删除了它们,哎呀。你已经完成了这个会话,用新的二进制文件更新机器,以便下一个 minidump 可以工作。并确保保留这些 PDB,源服务器始终是最好的。

标签: c# .net debugging visual-studio-2015


【解决方案1】:

我发现了问题。事实证明,我的环境发生了变化。从调试正常工作的最后一次构建开始,Windows 更新服务更新了我的 .NET 库。结果,我的新版本使用了更新的 .NET 文件,但为旧的 .NET 创建了转储。恢复正确版本的 .NET 对我有帮助。

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-13
    • 2017-06-09
    • 2021-05-08
    • 1970-01-01
    • 2012-09-20
    相关资源
    最近更新 更多