Visual Studio отлично компилируется, но по-прежнему показывает красные линии


96

Я использую VS 2012, и он работал нормально, пока я не начал наблюдать какое-то забавное поведение. Когда я открываю свой код, он показывает красные подчеркивания, которые мы обычно видим, когда в нашем коде есть ошибка. Удивительно, но код компилируется нормально. Я сделал следующие наблюдения, которые совершенно ненормальны.

  1. Красные подчеркивания в коде
  2. При чистке или построении раствора ошибок нет.
  3. красные подчеркивания исчезают на некоторое время после того, как я построю / очищаю решение, но в конце концов возвращается.
  4. Из-за этого мой intellisense перестал работать.
  5. Я не могу щелкнуть правой кнопкой мыши по любому компоненту и перейти к его определению.

Любые идеи?


Какой код показывает подчеркивание? Вы можете привести примеры?
Matth

Возможно, вы используете старый код? Попробуйте небольшую реализацию, которая что-то показывает, если ничего не происходит, возможно, вы используете старый код.
Макс

Вы используете Reshaper или какой-либо другой инструмент, который может подчеркивать подчеркивание?
AlG

Это во всех файлах кода? Это случилось со мной однажды, когда я открыл файл, который не был из моего решения, неспособность перейти к определению выдало его для меня.
Пьер-Люк Пино

Ответы:


48

Удалите содержимое временной папки ASP.NET, а затем перестройте. Он будет либо в вашей папке пользователя (для IIS Express - \ AppData \ Local \ Temp \ Temporary ASP.NET Files ), либо в каталоге Windows (для IIS - C: \ Windows \ Microsoft.Net \ Framework \ vx.xx \ Временные файлы ASP.NET )

Пути не в моей голове и могут быть неправильными


В качестве альтернативы, если это влияет только на один проект / решение, и вы используете git с соответствующими игнорирующими элементами для временных файлов, попробуйте зафиксировать изменения, удалить вашу рабочую копию и принудительно проверить свою ветку.
Кайл

3
что, если ошибка в Visual Studio для Mac? какой путь к этой папке?
Потерянные

1
Мне нужно было закрыть и открыть VS после, и он работает. Спасибо
MusicAndCode

170

Visual Studio 2017:

У .vsменя сработало закрытие Visual Studio и удаление папки, расположенной в каталоге решения.

У этой папки есть hiddenатрибут. Вам может потребоваться изменить настройки в параметрах папки, чтобы отображать скрытые файлы.


2
Для VS 2017 это решение работало там, где не работало ни одно из других на этой странице (например, очистка временных папок и очистка / bin и / obj). .Vs не был «спрятан» в моей системе, как уже упоминалось (тогда как, например, моя папка .git была, конечно, так что я мог заметить разницу).
secretwep

1
Я попытался удалить файл .suo, но он снова воссоздается, когда я перезапускаю VS 2017
Амит Кулат,

3
@AmitKulat Да, файл .suo представляет собой структурированное хранилище, которое создается Visual Studio и содержит множество настроек. Из-за какой-то ошибки перестает нормально работать. Таким образом, когда вы удалите его, он будет воссоздан с правильными настройками по умолчанию.
VeganHunter

4
«Неподдерживаемый ... Эта версия Visual Studio не может открыть следующие проекты ...» - всплывающее окно после удаления каталога .vs. Но это кажется безобидным. Нажмите кнопку ОК, и решение все равно откроется после отчета о миграции. Это может быть не связанная с этим проблема, которая неактивна до удаления .vs. Репортаж здесь для потомков.
Боб Штайн,

3
Это также работает для Visual Studio 2019 (предварительная версия. Удаление папки .vs)
Альберт Ромкс,

10

Просто возникла эта проблема при работе с решением, созданным в Visual Studio 2012, но запущенным в 2013 году. Я закрыл Visual Studio, удалил все каталоги \ bin и \ obj, и проблема исчезла.


9

Для меня эта проблема была исправлена, когда я снова выгрузил и перезагрузил проект. Я работал на себя, надеюсь, это сработает и для вас :)


7

Я знаю, что это устарело, но на случай, если люди найдут эту ветку, как я, в Google. У меня возникла эта проблема после разрешения некоторых конфликтов с svn. В решении есть несколько проектов, и я разрешил некоторые конфликты в нескольких разных проектах. Я сделал Build -> Clean Solution, а затем Build -> Rebuild Solution, и все снова было хорошо.


7

У меня была эта проблема, и она была связана с ReSharper.

Шаги решения для меня:

1) Отключить ReSharper

VisualStudio\Tools\Options\ReSharper Ultimate\General\Suspend Now

2) Построить решение

(Ctrl-Shift-B)

3) Включите ReSharper

VisualStudio\Tools\Options\ReSharper Ultimate\General\Resume Now

Стив


Работал у меня. Да. ReSharper был проблемой.
Мухаммад Сакиб

6

Установлены ли у вас какие-либо плагины, например, resharper? У меня возникли проблемы с плохим плагином.

Попробуйте запустить Visual Studio в безопасном режиме, чтобы плагины не запускались.

devenv /Safemode

10
Я использовал Resharper. Вы можете отключить ReSharper, нажав кнопку «Приостановить» в меню «Сервис» -> «Параметры» -> «ReSharper». Тогда возобновите это, мне это помогло.
Олег Кирильчук

5

Если вы используете Resharper, как я, вы можете удалить кеш resharper, перейдя по этой ссылке: https://www.jetbrains.com/help/resharper/Configuring_Caches_Location.html

To specify the location for caches

1. Open the Environment | General page of ReSharper options.
2. Use the Save solution caches in to select the location for cache files:
3. User local settings folder to store them in the following directory: %LOCALAPPDATA%\JetBrains\Transient
4.System TEMP folder to store them in the following directory: %TEMP%\ReSharperCache
5. Solution folder to store them in the root folder of the current solution
6. Custom folder to choose a custom location for ReSharper cache files.
7. Click Save to apply the modifications and let ReSharper choose where to save them, or save the modifications to a specific settings layer using the Save To drop-down list. For more information, see managing and sharing resharper settings.
8. Reopen your solution for the changes to take effect.

Кнопка «Очистить кеш» в среде | Общая страница настроек ReSharper решила мою проблему. Спасибо за подсказку!
nilsK

3

В vs2013 я решил эту проблему, удалив все мои папки obj / bin во всех проектах. Проблема, вероятно, была связана с конфигурациями решения, которые я удалил, но не был очищен должным образом, поскольку выполнение Build -> Clean Solution не удаляет старые выходные данные из папок obj / bin.


1

Что мне подходит, так это удаление индексного файла IntelliSense.

Файл IntelliSense находится в том же каталоге, что и ваше решение.

Имя файла - SolutionName.sdf

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


1

Это сработало для меня в Visual Studio Enterprise 2017:

  1. Перейдите в Инструменты> Параметры> Текстовый редактор> JavaSCript / TypeScript> Линтинг> Общие.

  2. снимите флажок "Включить ESLint"


1
После нескольких дней исследований, выгрузки / загрузки проектов и удаления множества папок .vs это стало основной причиной моей проблемы, поэтому я считаю это верным ответом. Пусть кто-нибудь, где-нибудь благословит тебя, сын мой.
Nandolcs

1

Я тоже столкнулся с этим и смог вернуть Visual Studio в нормальное состояние, выполнив следующие действия:

  1. Определите проект, от которого исходит код, обведенный красной линией
  2. Удалите проект красной линии из ссылок, где он используется (ProjectName \ References - щелкните правой кнопкой мыши, добавьте ссылки, снимите флажок с проекта красной линии)
  3. Сборка (теперь вы должны получить ошибки)
  4. Повторно добавьте ссылку на проект, которая была только что удалена
  5. Строим снова
  6. Красные линии должны быть удалены, и проект должен быть построен!

1

У меня была такая же проблема с большим количеством красных линий в нескольких исходных файлах * cpp. Хотя код скомпилирован отлично. Ни одно из других решений не помогло мне.

Изменение порядка строк #include в файле * .cpp может привести к исчезновению красных строк и восстановлению порядка следования.

Затем я заметил, что файл заголовка был дважды включен в один файл * .cpp. Снял вторую и - все нормально.

Включение файла заголовка дважды в один и тот же файл * .cpp кажется не проблемой для компилятора, а для части intellisense.


0

Возможно, уже поздно добавлять, но надеюсь, что это все еще может кому-то помочь. У меня была аналогичная проблема, когда я видел много красных волнистых линий в нескольких файлах. Я попробовал все предложенные выше ответы, но ничего не помогло. В тот момент, когда я начал просматривать классы, структуры в других файлах, на которые были ссылки на файлы жалоб, проблема исчезла. Похоже, что по какой-то причине intellisense не мог самостоятельно разрешать зависимости.


3
Я не вижу решения в вашем ответе. «Похоже, что intellisense не смог разрешить зависимости самостоятельно ...» - вы говорите, «просматривая классы, структуры», вы помогли intellisense разрешить зависимости?
Sнаđошƒаӽ 08

4
@ Sнаđошƒаӽ Думаю, именно это он и говорит.
Роберт Колумбия

@RobertColumbia Не обижайтесь на OP, но я думаю, что это просто смешно.
Sнаđошƒаӽ 08

@ Sнаđошƒаӽ ну вот что он говорит. Если вы считаете, что эта стратегия бесполезна, проголосуйте против.
Роберт Колумбия

@ Sнаđошƒаӽ Ну, я добрался до публикации, потому что столкнулся с той же проблемой. Сначала я попробовал все ответы, прежде чем опубликовать то, что у меня сработало. Как и другие, ответили на основе своего опыта. Я не вижу в этом ничего плохого. Вместо этого он может помочь и кому-то другому.
irsis

0

Для меня одно время я включил ведение журнала слияния для отладки некоторых ошибок зависимостей сборки (fuslogvw из командной строки CMD). Это было несколько месяцев назад, и с тех пор время сборки значительно сократилось (5-7 минут). Я также совершенно забыл, что оставил их включенными. Эти журналы были моим узким местом, и их отключение сделало итерацию намного быстрее. Надеюсь, это кому-то поможет!


0

Я столкнулся с этой проблемой в последней версии Visual Studio 2017.
Также отладочная версия моей программы работала очень медленно.

Я удалил файл решения .slnи создал новый.


0

Шаги, которые работают

  1. Откройте решение и перестройте все
  2. Закрыть решение
  3. Откройте решение и выполните чистку
  4. Закрыть решение
  5. Откройте решение и перестройте все
  6. Закройте, а затем откройте раствор, и все должно быть хорошо. Это работает для меня каждый раз

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



0

В моем случае с VS 2017 у меня есть много «красных линий», показанных под всеми символами, определенными в сторонней библиотеке, но мой проект действительно можно построить без проблем. Я пробовал все предлагаемые решения (например, удалить папку .VS, перезапустить VS и т. Д.), Но ни одно из них не работает.

Наконец, я исправил это, и вот как: я открываю страницу свойств своего проекта приложения, затем перехожу к «C / C ++ -> Общие -> Дополнительные каталоги включения», где я помещаю все необходимые пути заголовков сторонних библиотек. Я удаляю все пути (но сохраняю их где-нибудь), нажимаю «ОК» для подтверждения. Затем я вернулся к той же настройке, вставил этот путь обратно, щелкнул «ОК» для подтверждения, затем все эти «красные линии» исчезли.


0

Нашел это решение:

  1. Закройте Visual Studio (убедитесь, что devenv.exe отсутствует в диспетчере задач).
  2. Удалить %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\xx\ComponentModelCache каталог.
  3. Перезапустите Visual Studio.

0

У меня была эта проблема несколько месяцев, и я наконец ее исправил. Закрытие Visual Studio и удаление папки .vs, расположенной в каталоге решения, НЕ РАБОТАЕТ ДЛЯ МЕНЯ.

В файле web.config был тег assemblyIdentity, который ссылался на библиотеку, которой не было в моей папке ссылок. Я удалил этот тег, очистил, закрыл и снова открыл, и проблема была исправлена.

  1. Проверьте каждый из тегов assemblyIdentity в своем web.config и сравните их с папкой ссылок в проводнике решений.
  2. Удалите все теги assemblyIdentity, включая родительский тег loadedAssembly для всех, которые не указаны в вашей папке ссылок.
  3. Чистое решение
  4. Закройте и снова откройте решение
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.