В ближайшем окне 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
решил проблему для меня. Я постараюсь построить репо, если проблема появится снова...