В ближайшем окне VS 2017 отображается "Внутренняя ошибка в компиляторе C#"

Я использую Visual Studio 2017 (15.6.6). При отладке я пытаюсь оценить простые выражения, такие как int a = 2; в ближайшем окне. Ошибка

Внутренняя ошибка в компиляторе C#

брошен

Я пытался включить Use Managed Compatibility Mode как намекнуло в этом вопросе, но это не помогло.

Спасибо за любую помощь.

6 ответов

В процессе поиска я нашел эту проблему на GitHub, где ответ рекомендует также проверить Use the legacy C# and VB expression evaluators, Visual Studio предупреждает меня о проверке этой опции, но, включив ее, я снова могу оценить выражения в ближайшем окне.

Можно даже отключить Use Managed Compatibility Mode снова.

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

В моем случае проблема возникала в конкретной сборке. Когда мы посмотрели информацию о сборке (в обозревателе решений щелкните правой кнопкой мыши проект, выберите "Свойства", затем нажмите "Сборка информации"), все оказалось пустым.

Таким образом, мы дали ему Guid, затем восстановили, и это сработало.

Это происходит и в Visual Studio 2022 17.3.2, и его можно найти «Закрыто, недостаточно информации» в центре отзывов. Как всегда, некомпетентная аутсорсинговая Индия снова наносит удар.

В любом случае остановка отладки и перестроение решения работают. Это как-то связано с совершенно гребаной и бесполезной Hot Reload.

Я была такая же проблема. Не знаю, если это ваш выбор, но для меня это был следующий вопрос: вместо версии "Отладка" был включен "Релиз". Поэтому, как только я вернулся к отладке, я избавился от этой ошибки.

У меня та же ошибка при работе с собственным пакетом NuGet. В моем случае VS разрешает путь к копии моей сборки в папке "%userprofile%.nuget" вместо папки вывода сборки.

В настоящее время я не знаю, как предотвратить это несоответствие для новых типов проектов, где не указана подсказка для ссылок, но есть простой обходной путь: просто удалите распакованную копию пакета из %userprofile%\.nuget\packages\%yourpackage% до отладки.

Очистка каталога C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files решил проблему для меня. Я постараюсь построить репо, если проблема появится снова...

Другие вопросы по тегам