43

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

在设计模式下无法计算表达式。

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

在运行模式下无法计算表达式。

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

4

4 回答 4

31

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

根据MSDN

如果您尝试在不是解决方案启动项目的项目中评估函数并且收到错误消息,请尝试在解决方案资源管理器中选择该项目并再次尝试评估。

还:

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

于 2011-10-27T21:16:07.807 回答
6

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

于 2014-10-16T19:27:40.347 回答
4

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

在设计模式下无法计算表达式。

所以:

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

    在运行模式下无法计算表达式。

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

于 2016-05-02T11:48:02.317 回答
0

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

?xlworkbook.sheets(1).name

该过程挂起,我没有收到任何答案,之后其他所有事情,例如?2+2给了我那个错误:

在运行模式下无法计算表达式

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

于 2015-07-02T22:28:22.717 回答