立即窗口,“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式。
因此:
- 在应用程序将要运行的文件中设置一个断点;
- 等待应用程序执行停止(通过断点或exception)或手动触发(例如:转到URL);
- 在立即窗口中input你想要访问的属性(例如
GlobalConfiguration.Configuration
) – 现在如果该属性存在于这个上下文中,这应该会得到正确的结果。 如果不存在,那么你会得到:
在运行模式下不能评估expression式。
这与确保您正确访问正确的上下文中的属性一样简单。
在我的情况下,我启用本地debugging后,使用Excel Interop收到此错误。 然后在debugging模式,我试过这个:
?xlworkbook.sheets(1).name
这个过程是悬而未决,我没有收到任何答案,之后,其他的事情,例如?2+2
给了我这个错误:
在运行模式下不能评估expression式
为了再次能够使用debuggingfunction,我必须禁用本机debugging 。