Немедленное окно: «Выражение не может быть оценено ....» - PullRequest
38 голосов
/ 03 мая 2011

Когда я пытаюсь оценить выражение в Immediate Window во время разработки, я получаю ошибку:

Выражение не может быть оценено в режиме разработки.

Если яскомпилируйте проект ASP.NET и попытайтесь запустить его в режиме отладки. Я получаю еще одну ошибку:

Выражение не может быть оценено в режиме выполнения.

Почему я получаюэти ошибки?Я использовал Immediate Window в прошлом, и он отлично работал даже в режиме разработки.

Ответы [ 4 ]

27 голосов
/ 28 октября 2011

Предполагая, что вы не пропускаете оператор > в Immediate Window, могут возникнуть проблемы, если вы пытаетесь оценить выражение во время разработки в многопроектном решении или даже в веб-проекте.

Согласно MSDN :

Если вы пытаетесь оценить функцию в проекте, который не при запуске проекта для решения, и вы получаете сообщение об ошибке, попробуйте выберите проект в обозревателе решений и попробуйте выполнить оценку еще раз.

Также:

Вы не можете использовать оценку выражения времени проектирования в типах проектов, которые требует запуска среды выполнения, включая Visual Studio Инструменты для проектов Office, веб-проектов, проектов Smart Device и Проекты SQL.

6 голосов
/ 16 октября 2014

Стоит отметить, что поведение окна Immediate варьируется в зависимости от используемой вами версии Visual Studio.Если я пытаюсь оценить простое выражение, такое как ? 2+2 в Visual Studio 2013 Express для Web, я получаю сообщение об ошибке «Невозможно оценить выражение в режиме разработки»;однако в Visual Studio 2013 Professional выражение оценивается как 4 без необходимости находиться в режиме отладки.

4 голосов
/ 02 мая 2016

Как указал northben в комментарии , если вы пытаетесь получить доступ к свойствам в непосредственном окне, когда ваше приложение не запущено, вы можете получить:

Выражение не может быть оценено в режиме конструктора.

Таким образом:

  1. Установить точку останова в файле, через который будет выполняться ваше приложение;
  2. Ожидание остановки выполнения приложения (с помощью точки останова или исключения) или ручного запуска (например, перейти по URL-адресу);
  3. Введите в Immediate Window свойство, к которому вы хотите получить доступ (например, GlobalConfiguration.Configuration) - теперь это должно дать вам надлежащие результаты, если это свойство существует в этом контексте. Если его не существует, вы получите:

    Выражение не может быть оценено в режиме выполнения.

Это так же просто, как убедиться, что вы обращаетесь к свойствам в правильном контексте.

0 голосов
/ 03 июля 2015

В моем случае я получил эту ошибку при использовании Excel Interop после включения встроенной отладки . Затем в режиме отладки я попробовал это:

?xlworkbook.sheets(1).name

Процесс завис, я не получил никакого ответа, и после этого все остальное, например. ?2+2 дал мне эту ошибку:

Выражение не может быть оценено в режиме выполнения

Чтобы снова иметь возможность использовать функции отладки, мне пришлось отключить собственную отладку .

...