立即窗口,“expression式不能被评估…”

当我在devise时尝试在即时窗口中评估expression式时,出现错误:

在devise模式下不能评估expression式。

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

在运行模式下不能评估expression式。

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

假设你没有忽略立即窗口中的>运算符,如果你试图在多项目解决scheme甚至web项目的devise阶段评估一个expression式,可能会出现问题。

根据MSDN :

如果您试图在不是解决scheme的启动项目的项目中评估函数,并且收到错误,请尝试在解决scheme资源pipe理器中select项目,然后再次尝试评估。

也:

您不能在需要启动执行环境的项目types中使用devise时expression式评估,包括用于Office项目,Web项目,智能设备项目和SQL项目的Visual Studio Tools。

值得注意的是,立即窗口的行为取决于您正在使用的Visual Studio版本。 如果我试图评估一个简单的expression式? 2+2 Visual Studio 2013 Express for Web中的? 2+2 ,我收到“在devise模式下无法评估expression式”错误消息; 但是,在Visual Studio 2013 Professional中,expression式的计算结果为4而不必处于debugging模式。

正如Northben在评论中指出的那样 ,如果您在应用程序未运行时尝试访问直接窗口中的属性,则可能会得到:

在devise模式下不能评估expression式。

因此:

  1. 在应用程序将要运行的文件中设置一个断点;
  2. 等待应用程序执行停止(通过断点或exception)或手动触发(例如:转到URL);
  3. 在立即窗口中input你想要访问的属性(例如GlobalConfiguration.Configuration ) – 现在如果该属性存在于这个上下文中,这应该会得到正确的结果。 如果不存在,那么你会得到:

    在运行模式下不能评估expression式。

这与确保您正确访问正确的上下文中的属性一样简单。

在我的情况下,我启用本地debugging后,使用Excel Interop收到此错误。 然后在debugging模式,我试过这个:

 ?xlworkbook.sheets(1).name 

这个过程是悬而未决,我没有收到任何答案,之后,其他的事情,例如?2+2给了我这个错误:

在运行模式下不能评估expression式

为了再次能够使用debuggingfunction,我必须禁用本机debugging