“expression式评估器中的内部错误”

我在Visual Studio 2015的expression式评估器中遇到了一个问题,那就是“expression式求值器中的内部错误”,经过一些调查后,我发现这是由使用reflection加载的程序集引起的。 这个程序集不会抛出任何exception,但在此之后,vs exp评估者将失败。 这不是我加载的唯一程序集,有一些不影响评估者的良好工作程序。

为了解决这个问题,我必须检查“菜单>选项>debugging>使用托pipe兼容模式”,但是这会禁用“编辑和继续”function,我该怎么办?

加热器组件的特性:

  • 它的名字和主程序一样(我改了名字,但什么也没有发生)
  • 我所有的项目都使用了dotNet 4.5
  • 所有的根名称空间都是相同的(所有的程序集都是这样的)

谢谢!

这听起来像expression式评估器中的一个错误。 要获得更好的解决方法,请选中“使用旧版C#和VBexpression式评估程序”,而不是检查“使用托pipe兼容模式”。 这应该使您能够继续使用“编辑并继续”以及最近几个版本中添加的其他function。

在“expression评估者的内部错误”方面,您可以通过帮助 – >发送反馈 – >报告问题来解决问题吗? 这将帮助我们解决未来版本中的问题。

只是扩展Patrick Nelson提供的解决scheme。 对于查询的Visual Studio 2015+,步骤如下。

转到工具 – > 选项 VS选项

并在这里下选项selectdebugging – > 常规 ,向下滚动以find…传统的C#expression式..选项:

VS选项调试旧版选项

更多信息在这里提供:

切换到托pipe兼容模式

注意:切换到传统模式也有一些严重的缺陷。 尤其是运行时间对所实现的接口的reflection变得几乎是不可能的或极不方便的。 还有其他的reflection方法会抛出错误。

在我的情况下,我试图评估列表<>上的lambdaexpression式,并有这样的错误(“expression式评估器”内部错误)。 我正在使用VS2015,所以lambdaexpression式被允许。 原来expression式评估者缺lessLinq库。 我补充说

using System.Linq; 

到我目前的class级,瞧! Lambda评估。

我在发布模式而不是在debugging模式下debugging时遇到了“expression式求值程序中的内部错误”错误。 发布到生产环境时,我将其更改为“发布”,并忘记将其更改回“debugging”。

释放模式

调试模式

对于我检查“使用托pipe兼容模式”选项工作。 hover在variables上时,我也看到了问号,而不是属性和值