Подтвердить что ты не робот

Немедленное окно: "Выражение не может быть оценено..."

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

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

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

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

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

4b9b3361

Ответ 1

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

Согласно MSDN:

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

также:

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

Ответ 2

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

Ответ 3

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

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

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

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

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

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

Ответ 4

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

?xlworkbook.sheets(1).name

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

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

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