"表达式评估程序中的内部错误"

Meh*_*deh 55 c# debugging visual-studio-2015

我在visual studio 2015的表达式求值程序中遇到了一个问题,即"表达式求值程序中的内部错误",经过一些调查我发现这是由使用反射加载的程序集引起的.此程序集不会抛出任何异常,但在此之后,vs exp计算器将失败.这不是我加载的唯一程序集,有一些好的工作程序不会影响评估程序.

要解决此问题,我必须选中"菜单>选项>调试>使用托管兼容模式",但这会禁用"编辑并继续"功能,我该怎么办?

高压组件的属性:

  • 它的名字与主程序集相同(我更改了名称但没有发生任何事情)
  • 我的所有项目都使用dotNet 4.5
  • 所有根名称空间都相同(所有程序集都是这样)

谢谢!

Pat*_*SFT 71

这听起来像表达式评估器中的错误.要获得更好的解决方法,请选中"使用旧版C#和VB表达式计算器",而不是选中"使用托管兼容模式".这应该使您能够继续使用编辑和继续以及最近几个版本中添加的其他功能.

就"表达式评估器中的内部错误"而言,您可以通过转到帮助 - >发送反馈 - >报告问题来解决问题吗?这将有助于我们在将来的版本中解决问题.

  • 使用旧版评估程序时会丢失哪些功能? (3认同)
  • 我不得不取消选中这两个选项以摆脱使用vs 2017的错误。 (2认同)

Lor*_*uer 29

只是延伸Patrick Nelson提供的解决方案.对于Visual Studio 2015+,查询步骤如下.

转到工具 - > 选项 VS选项

并在选项下选择Debug - > General并向下滚动以查找... legacy C#expression ..选项:

VS选项Debug Legacy选项

更多信息请点击此处:

切换到托管兼容模式

注意:切换到传统模式时也会出现一些严重的缺陷.特别是运行时实现接口的反射变得几乎不可能或非常不方便.还有其他反射方法会抛出错误.

  • 完美的!!这是 .NET 核心代码的解决方案。使用旧的 .NET 框架代码时,我必须重新打开它。(但那很好,我可以忍受它) (2认同)

neo*_*ibe 5

我终于弄清楚是什么在我的 Visual Studio 中造成了这个问题!

快速修复是从“Documents/Visual Studio xx/Visualizers”文件夹中删除调试对象收藏夹并重新启动 Visual Studio。

在此处输入图片说明 当您在调试器中“固定”一个变量时,Visual Studio 会为其保存一个“最喜欢的”json 对象。

似乎 Visual Studio 中存在一个错误,它破坏了一些本质上是动态的子变量的“收藏夹”(虽然不完全确定条件)。 在此处输入图片说明