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

Не удается оценить выражение во время отладки

При отладке кода asp.net(работает с IIS и с использованием Visual studio 2013) и в точке останова и пытается оценить переменную с помощью быстрого просмотра, я довольно часто получаю "неспособность оценить выражение".

удаление .suo из папки проекта asp.net, похоже, решает проблему (после перезагрузки решения)

Является ли это признанной ошибкой? получив это много сейчас на Visual studio 2013 на нескольких машинах.

4b9b3361

Ответ 1

Сегодня я столкнулся с VS2013.

Перейти к Инструменты → Параметры → Отладка → Общие →     Прокрутите страницу вниз до "Использовать режим управляемой совместимости" и выберите вариант.

Снимок экрана из блога (url ниже): enter image description here Перезапустите отладку. Надеюсь, это поможет другим.

Что помогло мне ниже!

Ответ 2

Механизм отладки С# в значительной степени зависит от отладчика CLR для оценки выражений. Это сообщение указывает, что CLR находится в состоянии, в котором он не может выполнить простые оценки, и причины этого могут включать следующие

  • локальная переменная оптимизирована
  • поток остановлен в небезопасной точке GC
  • предыдущий вызов функции заставил отладчик попасть в плохое состояние, и, следовательно, дальнейшие оценки просто невозможны.

Ответ 3

Я столкнулся с этим для конкретного проекта, и причина этого - Costura.Fody(вставляет все библиотеки DLL в исполняющую сборку).

В этом случае вы можете отключить Costura.Fody.

  • Комментарий Costura от FodyWever.xml

    <Weavers>
      <!--<Costura />-->
    </Weavers>
    
  • Отключите чистую контрольную цель (если она включена) в *.csproj

    <!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild">
        <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%
         (DestinationSubDirectory)%(Filename)%(Extension)')" />
        <Exec Command="DeleteEmptyDirectory.bat" />
      </Target>-->
    

Ответ 4

Некоторые из этих опций меняются со временем - и, похоже, решения с наивысшим рейтингом в других ответах больше не существуют - поиск в диалоге опций может помочь.

Прямо сейчас для проекта ASPNET Core я нашел это, и его включение, кажется, помогает:

enter image description here

Подавить оптимизацию JIT при загрузке модуля (только для управляемого): отключает оптимизацию JIT для управляемого кода, когда модуль загружается и JIT компилируется, когда подключен отладчик. Отключение оптимизации может облегчить отладку некоторых проблем, хотя и в ущерб производительности. Если вы используете Just My Code, подавление оптимизации JIT может привести к тому, что непользовательский код будет отображаться как код пользователя ("Мой код"). Для получения дополнительной информации см. JIT оптимизация и отладка.

Если это не помогло, я бы предложил отключить его снова.

Ответ 5

Перейдите в Tools --> Options --> Environment --> General -->, выберите опцию "Автоматически настроить визуальный опыт на основе производительности клиента".