Visual Studio 2017 не выделяет ошибки

Недавно я обновился с Visual Studio 2012 до 2017 (обновлен до версии 15.3.5), и у меня возникли проблемы с IDE.

В определенном проекте я не получаю подчеркивание ошибок.

введите здесь описание изображения

а на панели "Список ошибок" "Только сборка" фактически показывает больше информации, чем "Сборка + IntelliSense"

введите здесь описание изображения

Кроме того, если выбрано «Build + IntelliSense», я могу видеть только ошибку компилятора в окне вывода. Вот список ошибок после неудачной сборки

введите здесь описание изображения

но в окне вывода есть следующее:

3> ------ Сборка началась: Project: ..., Конфигурация: Debug Any CPU ------
3> C: \ Checkout ... \ MainForm.vb (454,27): ошибка BC30311: значение типа «Module1.aClass» не может быть преобразовано в «Module1.bClass».

Это происходит не во всех проектах. Я сделал новый проект, чтобы посмотреть, смогу ли я воспроизвести, но не могу. Вот новый проект с тем же кодом, где ошибка подчеркнута в коде и «Build + IntelliSense» работает.

введите здесь описание изображения

Я даже отсортировал xml в файлах vbproj и «сравнил» проблемный проект с новым проектом, и нет очевидной разницы, которая могла бы вызвать это. Оба ссылаются на один и тот же компилятор. Оба проекта нацелены на .Net 4.6.2 и настроены на компиляцию только для x86. Оскорбительный проект ссылается на несколько других проектов (C # и VB.Net), а также на стороннюю dll и пакет nuget. Кроме этих различий больше ничего нет.

Другие проекты (C # и VB.Net) в работе решения штрафа нарушившего проекта.

Я видел, как подобные проблемы обсуждались в Интернете, но никакие исправления у меня не помогли. Я пробовал опцию «Восстановить» в установщике. Затем я удалил Visual Studio и переустановил.

Обновление:

Кажется, что изменение целевой структуры имеет некоторый эффект. Проект с таким поведением был нацелен на 4.6.2 и не показывал ошибок, а когда он был изменен на 4.7, он показывал ошибку компиляции. Затем, вернувшись к 4.5, он показал ошибку. Затем вернувшись к 4.6.2, он не показал ошибок. Повторение процесса оказалось неповторимым. 4.7, 4.5, 4.6, 4.6.2 - что угодно, теперь все не показывают ошибок.

Также важно связать эту страницу Microsoft https://developercommunity.visualstudio.com/content/problem/7759/no-errors-displayed-in-the-error-list.html, поскольку похоже, что у многих других людей есть аналогичная проблема.


person djv    schedule 05.10.2017    source источник
comment
Очень странное поведение ... Мне кажется, это ошибка. Вы пробовали проблемный проект на другом компьютере с той же версией VS? - На вашем месте я бы написал отчет об ошибке в Microsoft, прикрепив к нему проект.   -  person Visual Vincent    schedule 05.10.2017
comment
Я создал новый проект с вашим кодом в Visual Studio 2012, а затем обновил его с помощью Visual Studio 2017, не смог воспроизвести эту проблему. Итак, эта проблема кажется больше связанной с вашим проектом, как насчет создания нового проекта с указанным выше кодом в вашем решении, проверьте, работает ли он нормально? Попробуйте удалить файл .vs.   -  person Leo Liu-MSFT    schedule 06.10.2017
comment
Репро нет, но я избегал установки обновлений. В частности, обновления 15.3.x породили множество отчетов об ошибках, слишком много, чтобы я рискнул. Иногда нам просто нужно выполнять свою работу, а не тестировать продукты Microsoft. Использование справки ›Отправить отзыв› Сообщить о проблеме - лучший способ сообщить о подобных проблемах.   -  person Hans Passant    schedule 06.10.2017
comment
@ Leo-MSFT проект изначально был образцом проекта от третьей стороны, у которой был <ProductVersion>9.0.30729</ProductVersion> в файле проекта (Visual Studio 2008?), Который был обновлен до 2012 года, а затем до 2017 года.   -  person djv    schedule 06.10.2017
comment
@HansPassant, проблема присутствовала в 15.0 изначально, и хотя я проверил журнал изменений перед обновлением до 15.3, и не было упоминания об исправлении для этого, я решил, что попробую.   -  person djv    schedule 06.10.2017
comment
Я ничего не могу сделать, чтобы получить его в этом состоянии с 15.0, но опять же, я не могу получить 281 сообщение, так что, возможно, шаги воспроизведения не совсем адекватны. Регистрация ошибки по-прежнему является лучшим способом исправить ошибки VS2017.   -  person Hans Passant    schedule 06.10.2017
comment
@HansPassant har, har ... есть много Delegate invocation can be simplified., которые предполагают, что я мог бы использовать нулевой условный оператор. Помните, я недавно обновился с 2012 до 2017 :). Также Object initialization can be simplified и Variable declaration can be inlined. Еще не дошли до подавления всех тех   -  person djv    schedule 06.10.2017


Ответы (1)


Я решил проблему, по крайней мере, своим решением.

Я играл со ссылками на проекты и обнаружил, что когда на конкретный проект не ссылался другой проект, я получал подчеркивание ошибки. Я прошел через процесс изменения целевых версий версии фреймворка, пока что-то не сработало.

Все мои проекты ранее были ориентированы на .NET 4.6.2. Установив таргетинг на 4.7 для всех проектов, я теперь получаю правильное подчеркивание ошибок и отчет в окне ошибок.

Я не уверен, что это решение для всех, и с моей стороны потребуется дополнительная работа для развертывания моего проекта в производственной среде, но я могу с этим согласиться.

Я предполагаю, что это связано с таргетингом на 4.6.2 с использованием Visual Studio 2012 и обновлением до 2017. Возможно, что-то было неправильно настроено, если / когда проекты были обновлены.

person djv    schedule 20.11.2017
comment
Также похоже, что это происходит в 4.6.1 - person thecoolmacdude; 13.12.2017
comment
Ага, это странная ошибка, которая встречается и в 4.6.1. У меня было два проекта, и один из них ссылался на другой. Внезапно я перестал выделять сообщения об ошибках в ссылочном проекте. Обратное переключение на .Net Framework решило проблему! Должен любить Microsoft ... - person Koshera; 01.11.2018