2014-01-16 3 views
35

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

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

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

+0

Я видел это тоже. В моем случае, я подозреваю, что это имеет какое-то отношение к отладке процесса, в котором загружено несколько AppDomains. У вас есть несколько приложений в вашем пуле приложений? – jlew

+0

Должны ли компилироваться в режиме отладки? Это единый проект или многомиллионные проекты? –

+0

@jlew имеет только одно приложение в пуле приложений. tim-schmelter да его скомпилирован как режим отладки ... – Tim

ответ

5

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

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

Это сообщение - это то, что я только заметил в vs2013 RTM не помню, замечая его (при отладке) в vs2013RC (и бета-версии), 2012 или 2010. – Tim

67

Я сталкивался с этим сегодня с VS2013.

Goto Инструменты -> Параметры -> Отладка -> Общие -> Прокрутите вниз для «Использовать управляемый режим совместимости» и выберите опцию.

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

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

+2

Очень спасибо @Shubh! – Merta

+1

спасибо большое .... –

+1

Спасибо большое. Большой ответ. :) – Abhid

-1

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

-1

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

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

  1. Закомментируйте COSTURA от FodyWever.xml

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

    <!--<Target Name="CleanReferenceCopyLocalPaths" AfterTargets="AfterBuild"> 
        <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)% 
        (DestinationSubDirectory)%(Filename)%(Extension)')" /> 
        <Exec Command="DeleteEmptyDirectory.bat" /> 
        </Target>--> 
    
Смежные вопросы