"Внутренняя ошибка в оценке выражений"

Я столкнулся с проблемой в оценке выражений визуальной студии 2015, в которой говорится "Внутренняя ошибка в оценщике выражений", после некоторых исследований я обнаружил, что это вызвано сборкой, которая загружается с использованием отражения. Эта сборка не выдавала бы никаких исключений, но после этого, vs exp оценщик потерпит неудачу. Это не единственная сборка, которую я загружаю, есть хорошие рабочие, которые не влияют на оценщика.

Чтобы преодолеть эту проблему, мне пришлось проверить "Меню > параметры > отладкa > Использовать режим управляемой совместимости", но это отключает функцию "Изменить и продолжить", что я могу сделать?

Свойства сборки причинителя:

  • его имя совпадает с именем главной сборки  (я изменил его имя, но ничего не произошло)
  • Во всех моих проектах используется dotNet 4.5
  • все корневые пространства имен одинаковы  (все сборки являются такими)

Спасибо!

Ответ 1

Это звучит как ошибка в оценщике выражений. Для лучшего обходного пути вместо проверки "Использовать режим совместимой совместимости" установите флажок "Использовать устаревшие оценщики выражений С# и VB". Это должно позволить вам продолжать использовать Edit и Continue, а также другие функции, добавленные в последние несколько выпусков.

В терминах "Внутренняя ошибка в оценщике выражений", пожалуйста, откройте проблему, перейдя в Help → Отправить отзыв → Сообщить о проблеме? Это поможет нам устранить проблему в будущих выпусках.

Ответ 2

Просто продолжая решение, предоставленное Патриком Нельсоном. Для Visual Studio 2015+ по запросу следующие шаги.

Перейдите в раздел Инструменты Параметры. VS Options

и здесь в разделе "Параметры" выберите Отладка Общие и прокрутите вниз, чтобы найти... выражение устаревшего языка С#..

VS Options Debug Legacy options

Дополнительная информация приведена здесь:

Переход в режим совместимой совместимости

Примечание. Есть также некоторые серьезные недостатки, возникающие при переходе в устаревший режим. Особенно Runtime Reflection реализованных интерфейсов становится почти невозможной или крайне неудобной. Существуют и другие методы Reflection, которые будут вызывать ошибки.

Ответ 3

Я столкнулся с ошибкой "внутренняя ошибка в выражении", когда я отлаживался в режиме деблокирования, а не в режиме отладки. Я изменил его на Release при публикации на производство и забыл изменить его обратно на Debug.

Режим выпуска

Режим отладки

Ответ 4

В моем случае я пытался оценить выражение лямбда в List < > и имел такую ​​ошибку ( "Внутренняя ошибка в оценщике выражений" ). Я использовал VS2015, поэтому допускались лямбда-выражения. Оказывается, у экспансивного оценщика не было библиотеки Linq. Я добавил

using System.Linq;

моему текущему классу и вуаля! Оценено Lambda.

Ответ 5

Для меня проверена опция "Использовать управляемый режим совместимости". Я также видел вопросительные знаки при наведении на переменные вместо свойств и значений