"Внутренняя ошибка в оценке выражений"
Я столкнулся с проблемой в оценке выражений визуальной студии 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
Для меня проверена опция "Использовать управляемый режим совместимости". Я также видел вопросительные знаки при наведении на переменные вместо свойств и значений