立即窗口,“表达式无法评估....”

时间:2011-05-03 09:05:59

标签: visual-studio-2010 ide immediate-window

当我尝试在设计时评估立即窗口中的表达式时,我收到错误:

  

在设计模式下无法评估表达式。

如果我编译ASP.NET项目并尝试在调试模式下运行它,我会收到另一个错误:

  

在运行模式下无法评估表达式。

为什么我会收到这些错误?我过去使用过立即窗口,即使在设计模式下也能正常工作。

4 个答案:

答案 0 :(得分:27)

假设您没有错过立即窗口中的>运算符,如果您在多项目解决方案甚至Web项目中尝试在设计时评估表达式,则可能会出现问题。

根据MSDN

  

如果您正在尝试评估项目中没有的函数   解决方案的启动项目,您收到错误,请尝试   在解决方案资源管理器中选择项目并尝试评估   试。

此外:

  

您不能在项目类型中使用设计时表达式评估   需要启动执行环境,包括Visual Studio   用于Office项目,Web项目,智能设备项目和的工具   SQL项目。

答案 1 :(得分:6)

值得注意的是,立即窗口的行为会因您使用的Visual Studio版本而异。如果我尝试在Visual Studio 2013 Express for Web中评估像? 2+2这样的简单表达式,我会收到"在设计模式下无法评估表达式"错误信息;但是,在Visual Studio 2013 Professional中,表达式的计算结果为4,而不必处于调试模式。

答案 2 :(得分:4)

作为northben pointed out in a comment,如果您在应用程序未运行时尝试在即时窗口中访问属性,则可能会得到:

  

在设计模式下无法评估表达式。

因此:

  1. 在应用程序将运行的文件中设置断点;
  2. 等待应用程序执行停止(通过断点或异常)或手动触发(例如:转到URL);
  3. 在“立即窗口”中键入要访问的属性(例如GlobalConfiguration.Configuration) - 现在,如果该属性存在于该上下文中,则应该可以获得正确的结果。如果它不存在,那么你会得到:
      

    在运行模式下无法评估表达式。

  4. 这很简单,只需确保您在正确的上下文中访问属性。

答案 3 :(得分:0)

在我的情况下,在启用本机调试后使用Excel Interop时收到此错误。然后在调试模式下我尝试了这个:

?xlworkbook.sheets(1).name

这个过程挂了,我没有得到任何答案,之后还有其他所有的事情,例如: ?2+2给了我这个错误:

  

在运行模式下无法评估表达式

为了能够再次使用调试功能,我必须禁用本机调试