Visual studio чудово компілює, але все одно відображає червоні лінії


96

Я використовую VS 2012, і все працювало нормально, поки я не почав спостерігати якусь кумедну поведінку. Коли я відкриваю свій код, він відображає червоне Підкреслення, яке ми зазвичай бачимо, коли в нашому коді є помилка. Дивно, але код компілює все чудово. Я зробив наступні спостереження, які взагалі не є нормальними.

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

Будь-які ідеї?


Який код показує підкреслення? Можете навести приклади?
мат

У вас, можливо, запущений старий код? Спробуйте невелику реалізацію, яка щось показує, якщо нічого не відбувається, можливо, у вас запущений старий код.
Макс

Ви використовуєте 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 із відповідними ігноруваннями для тимчасових файлів, спробуйте внести зміни, видаливши свою робочу копію та примусово перевіривши свою гілку.
Kyle

3
що робити, якщо помилка у Visual Studio для Mac? яким буде шлях до цієї папки?
Загублений

1
Мені потрібно було закрити і відкрити VS після, і це працює. Дякую
MusicAndCode

166

Visual Studio 2017:

Закриття Visual Studio та видалення .vs папки, розташованої в каталозі рішень, працювали для мене.

Ця папка має hiddenатрибут. Можливо, вам доведеться змінити налаштування в опціях папок, щоб показати приховані файли.


2
Для VS 2017 це рішення працювало там, де не працював жоден з інших на цій сторінці (наприклад, чищення тимчасових папок та очищення / bin та / obj). .Vs не був "прихованим" у моїй системі, як згадувалося (тоді як, наприклад, моя папка .git, звичайно, була, тому я міг би сказати різницю).
secretwep

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

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

4
“Не підтримується ... Ця версія Visual Studio не може відкрити наступні проекти ...” - досить зупиняюче спливаюче вікно після видалення каталогу .vs. Але це, здається, доброякісне. Натиснув кнопку ОК, і рішення все одно відкрилося після звіту про міграцію. Це може бути не пов’язана проблема, яка не діяла доти, доки .vs не було видалено. Звітування тут для нащадків.
Bob Stein

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) ReEnable 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 у всіх проектах. Проблема, ймовірно, була пов’язана з конфігураціями рішення, які я видалив, але їх не було очищено належним чином, оскільки при побудові -> Очищення рішення не видаляються старі результати з папок 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, здається, не становить проблем для компілятора, а для інтелісенсної частини.


0

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


3
Я не бачу рішення у вашій відповіді. "Здавалося, intellisense не зміг самостійно вирішити залежності ..." - ви кажете, "переглядаючи класи, структури", що допомогли intellisense вирішити залежності?
Sнаđошƒаӽ

4
@ Sнаđошƒаӽ Я думаю, що саме це він говорить.
Роберт Колумбія,

@RobertColumbia Не ображайте ОП, але я думаю, що це просто смішно.
Sнаđошƒаӽ

@ Sнаđошƒаӽ ну, саме про це він говорить. Якщо ви вважаєте, що стратегія не є корисною, проголосуйте проти відповіді.
Роберт Колумбія,

@ Sнаđошƒаӽ Ну, я дотягнувся до публікації, оскільки я теж стикався з тією ж проблемою. Спочатку я спробував усі відповіді, перш ніж опублікувати, що для мене працює, як і інші також відповідали на основі досвіду. Я не бачу в цьому нічого поганого. Натомість це може допомогти і комусь іншому.
irsis

0

Для мене свого часу я ввімкнув протокол fusion для налагодження деяких помилок залежності збірки (fuslogvw із запиту CMD). Це було місяці тому, і з того часу я відчував набагато повільніший час збірки (5-7 хвилин). Я також повністю забув, що залишив їх увімкненими. Ці журнали були моєю горловиною пляшки, і їх відключення зробило ітерацію набагато швидшою. Сподіваюся, це комусь допомагає!


0

Я зіткнувся з цією проблемою з останньою Visual Studio 2017.
Також версія налагодження моєї програми працювала болісно повільно.

Я видалив файл рішення .slnта створив новий.


0

Кроки, які працюють

  1. Відкрийте рішення та зробіть все, щоб побудувати все
  2. Закрити рішення
  3. Відкрийте розчин і зробіть чисту
  4. Близьке рішення
  5. Відкрийте рішення і виконайте повторну збірку всіх
  6. Закрийте, а потім відкрийте рішення, і воно повинно бути хорошим. Це працює у мене щоразу

Обережно видаляючи деякі з цих файлів налаштувань, оскільки ви втратите збережені налаштування налагодження тощо, і це може завдати більшої шкоди, ніж ви думаєте



0

У моєму випадку з VS 2017 у мене є багато "червоних ліній", показаних нижче всіх символів, визначених у сторонній бібліотеці, але мій проект може бути створений без проблем. Я спробував усі запропоновані рішення (наприклад, видалити папку .VS, перезапустити VS тощо), але жодне з них не працює.

Нарешті, я виправив це, і ось як: я відкриваю сторінку властивостей мого додатка, а потім переходжу до "C / C ++ -> Загальні -> Додаткові включені каталоги", куди я поміщаю всі необхідні шляхи заголовків сторонніх бібліотек. Я видаляю весь шлях (але зберігаю їх десь), натисніть "Ok" для підтвердження. Потім я повернувся до того самого налаштування, вставте цей шлях назад, натисніть "Ok" для підтвердження, тоді всі ці "червоні лінії" зникнуть.


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, включаючи батьківський тег залежногоAssembly для будь-яких, які не вказані у вашій папці посилань.
  3. Чистий розчин
  4. Закрийте та знову відкрийте розчин
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.