Visual studio kompiluje się dobrze, ale nadal wyświetla czerwone linie

96

Używam VS 2012 i wszystko działało dobrze, dopóki nie zacząłem obserwować zabawnego zachowania. Kiedy otwieram kod, pokazuje on czerwone podkreślenia, które zwykle widzimy, gdy w naszym kodzie jest błąd. O dziwo, kod kompiluje się dobrze. Poczyniłem następujące obserwacje, które wcale nie są normalne.

  1. Czerwone podkreślenia w kodzie
  2. Podczas czyszczenia lub budowania rozwiązania nie ma błędu.
  3. Czerwone podkreślenia znikają na jakiś czas po utworzeniu / czyszczeniu rozwiązania, ale w końcu wrócą.
  4. Z tego powodu mój intelisense przestał działać.
  5. Nie mogę kliknąć prawym przyciskiem na żaden komponent i przejść do jego definicji.

Jakieś pomysły?

Stracony
źródło
Jaki kod wyświetla podkreślenia? Czy możesz podać przykłady?
matth
Czy może używasz starego kodu? Wypróbuj małą implementację, która coś pokazuje, jeśli nic się nie dzieje, być może używasz starego kodu.
Max
Czy używasz programu Reshaper lub innego narzędzia, które może wykonywać podkreślenia?
AlG
Czy to dotyczy wszystkich plików kodu? Zdarzyło mi się to raz, kiedy otworzyłem plik, który nie był z mojego rozwiązania, nie mogąc przejść do definicji, zdradził mi go.
Pierre-Luc Pineault

Odpowiedzi:

48

Usuń zawartość tymczasowego folderu ASP.NET, a następnie odbuduj. Będzie się znajdować w folderze użytkownika (w przypadku usług IIS Express - \ AppData \ Local \ Temp \ Temporary ASP.NET ) lub w katalogu Windows (w przypadku usług IIS - C: \ Windows \ Microsoft.Net \ Framework \ vx.xx \ Tymczasowe pliki ASP.NET )

Ścieżki są poza zasięgiem mojej głowy i mogą nie być poprawne

levelnis
źródło
Alternatywnie, jeśli ma to wpływ tylko na jeden projekt / rozwiązanie i używasz git z odpowiednimi ignorowaniami dla plików tymczasowych, spróbuj zatwierdzić zmiany, usunąć kopię roboczą i wymusić wyewidencjonowanie swojej gałęzi.
Kyle,
3
co się stanie, jeśli błąd występuje w programie Visual Studio dla komputerów Mac? jaka byłaby ścieżka do tego folderu?
Przegrana
1
Musiałem zamknąć i otworzyć VS po i działa. Dzięki
MusicAndCode
170

Visual Studio 2017:

Zamknięcie programu Visual Studio i usunięcie .vsfolderu znajdującego się w katalogu rozwiązania działało dla mnie.

Ten folder ma hiddenatrybut. W celu wyświetlenia ukrytych plików może być konieczna zmiana ustawień w opcjach folderów.

VeganHunter
źródło
2
W przypadku VS 2017 to rozwiązanie działało tam, gdzie żadne inne na tej stronie nie działało (na przykład czyszczenie folderów tymczasowych i czyszczenie / bin i / obj). Plik .vs nie był „ukryty” w moim systemie, jak wspomniano (podczas gdy np. Mój folder .git był oczywiście, więc mogłem odróżnić).
Secretwep
1
Próbowałem usunąć plik .suo, ale jest on odtwarzany ponownie po ponownym uruchomieniu VS 2017
Amit Kulat
3
@AmitKulat Tak, plik suo to uporządkowany magazyn utworzony przez program Visual Studio i zawierający kilka ustawień. Z powodu jakiegoś błędu przestaje działać poprawnie. Tak więc po usunięciu zostanie utworzony ponownie z poprawnymi ustawieniami domyślnymi.
VeganHunter,
4
„Nieobsługiwana… Ta wersja programu Visual Studio nie może otworzyć następujących projektów…” - raczej zatrzymujące serce wyskakujące okienko po usunięciu katalogu .vs. Ale wydaje się łagodny. Kliknięto OK, a rozwiązanie mimo to zostało otwarte po raporcie z migracji. Może to być niepowiązany problem, który pozostawał uśpiony do czasu usunięcia pliku .vs. Zgłaszając się tutaj dla potomności.
Bob Stein
3
Działa to również dla Visual Studio 2019 (Podgląd Usuwanie folderu .vs.)
Albert Romkes
11

U mnie ten problem został rozwiązany po ponownym wyładowaniu i ponownym załadowaniu projektu. Pracowałem dla mnie, mam nadzieję, że u Ciebie też działa :)

Skr
źródło
10

Właśnie miałem ten problem podczas pracy z rozwiązaniem utworzonym w programie Visual Studio 2012, ale działającym w 2013 r. Zamknąłem program Visual Studio, usunąłem wszystkie katalogi \ bin i \ obj i problem zniknął.

Kevin Brydon
źródło
7

Wiem, że to stare, ale na wypadek, gdyby ludzie znaleźli ten wątek, tak jak ja z Google. Miałem ten problem po rozwiązaniu niektórych konfliktów z svn. Rozwiązanie zawiera kilka projektów i rozwiązałem kilka konfliktów w kilku różnych projektach. Zrobiłem Build -> Clean Solution, a następnie Build -> Rebuild Solution i wszystko znów było dobrze.

ŁUKASZ
źródło
7

Miałem ten problem i był on związany z ReSharper.

Kroki rozwiązania dla mnie:

1) Wyłącz ReSharper

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

2) Zbuduj rozwiązanie

(Ctrl-Shift-B)

3) ReEnable ReSharper

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

Steve

samneric
źródło
Pracował dla mnie. Tak. ReSharper był problemem.
Muhammad Saqib
6

Czy masz zainstalowane jakieś wtyczki, takie jak resharper? Wystąpił problem ze złą wtyczką.

Spróbuj uruchomić program Visual Studio w trybie awaryjnym, aby zapobiec uruchamianiu wtyczek.

devenv /Safemode
Marko
źródło
10
Używałem Resharper. Możesz wyłączyć ReSharper za pomocą przycisku Wstrzymaj w menu Narzędzia -> Opcje -> ReSharper. Wznów to, pomogło mi.
Oleg Kyrylchuk
5

Jeśli używasz Resharper tak jak ja, możesz usunąć pamięć podręczną resharper, klikając ten link: 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.
uzay95
źródło
Przycisk „Wyczyść pamięć podręczną” w środowisku | Strona ogólna opcji ReSharper rozwiązała mój problem. Dzięki za podpowiedź!
nilsK
3

W vs2013 rozwiązałem ten problem, usuwając wszystkie moje foldery obj / bin we wszystkich projektach. Problem był prawdopodobnie spowodowany konfiguracjami rozwiązań, które usunąłem, ale nie zostały poprawnie wyczyszczone, ponieważ wykonanie kompilacji -> czyste rozwiązanie nie usuwa starych wyników z folderów obj / bin.

Rocklan
źródło
1

To, co działa w moim przypadku, to usunięcie pliku indeksu IntelliSense.

Plik IntelliSense znajduje się w tym samym katalogu, co rozwiązanie.

Jego nazwa to SolutionName.sdf

Po prostu usuń ten plik, ponownie otwórz rozwiązanie, a technologia IntelliSense rozpocznie odbudowywanie pliku indeksu. Potem problem zniknie.

A.Franzen
źródło
1

To zadziałało dla mnie w programie Visual Studio Enterprise 2017:

  1. Przejdź do Narzędzia> Opcje> Edytor tekstu> JavaSCript / TypeScript> Linting> Ogólne

  2. usuń zaznaczenie „Włącz ESLint”

Gerald
źródło
1
Po wielu dniach poszukiwań, projektów zwalniania / wczytywania i wielu operacji usuwania folderów .vs, to była główna przyczyna mojego problemu, więc uważam to za poprawną odpowiedź. Niech ktoś gdzieś cię błogosławi, mój synu.
Nandolcs
1

Natknąłem się na to również i mogłem przywrócić Visual Studio do normalnego stanu, wykonując następujące czynności -

  1. Zidentyfikuj projekt, z którego pochodzi kod z czerwoną linią
  2. Usuń projekt czerwonej linii z odniesień, w których jest używany (ProjectName \ References - kliknij prawym przyciskiem myszy, dodaj odniesienia, odznacz projekt czerwonej linii)
  3. Kompiluj (teraz powinieneś otrzymać błędy)
  4. Ponownie dodaj odwołanie do projektu, które zostało właśnie usunięte
  5. Zbuduj ponownie
  6. Należy usunąć czerwone linie, a projekt powinien zostać zbudowany!
Brian Mikinski
źródło
1

Miałem ten sam problem z dużą ilością czerwonych linii w kilku plikach źródłowych * cpp. Chociaż kod skompilowany doskonale. Żadne z innych rozwiązań nie działało dla mnie.

Zmiana kolejności wierszy #include w pliku * .cpp może spowodować, że czerwone linie znikną - i powrócą do przywróconej kolejności.

Potem zauważyłem, że plik nagłówkowy został zawarty dwukrotnie w jednym pliku * .cpp. Usunąłem drugą i - wszystko było w porządku.

Umieszczenie pliku nagłówkowego dwa razy w tym samym pliku * .cpp wydaje się nie być problemem dla kompilatora, ale dla części Intellisense.

hartwin
źródło
0

Być może jest już późno, aby dodać, ale mam nadzieję, że nadal może komuś pomóc. Miałem podobny problem, gdy widziałem dużo czerwonych zawijasów w kilku plikach. Wypróbowałem wszystkie odpowiedzi zaproponowane powyżej, ale wydawało się, że nic nie działa. W momencie, gdy zacząłem przeglądać klasy, struktury w innych plikach, do których pliki reklamujące miały odniesienia, problem zniknął. Wydawało się, że z jakiegoś powodu Intellisense nie był w stanie samodzielnie rozwiązać zależności.

tęczówka
źródło
3
Nie widzę rozwiązania w Twojej odpowiedzi. „Wydawało się, że Intellisense nie był w stanie samodzielnie rozwiązać zależności ...” - czy mówisz, „przeglądając klasy, struktury” , pomogłeś Intellisense rozwiązać zależności?
Sнаđошƒаӽ
4
@ Sнаđошƒаӽ Myślę, że dokładnie to mówi.
Robert Columbia
@RobertColumbia Bez obrazy dla OP, ale myślę, że to po prostu śmieszne.
Sнаđошƒаӽ
@ Sнаđошƒаӽ dobrze, to jest to, co mówi. Jeśli uważasz, że ta strategia nie jest pomocna, oceń odpowiedź.
Robert Columbia
@ Sнаđошƒаӽ Cóż, dotarłem do postu, ponieważ miałem ten sam problem. Najpierw wypróbowałem wszystkie odpowiedzi, zanim opublikowałem, co zadziałało dla mnie. Podobnie jak inni również odpowiedzieli na podstawie ich doświadczenia. Nie widzę w tym nic złego. Zamiast tego może pomóc komuś innemu.
irsis
0

Dla mnie kiedyś włączałem rejestrowanie fusion, aby debugować niektóre błędy zależności zespołu (fuslogvw z wiersza polecenia CMD). To było kilka miesięcy temu i od tamtej pory czas kompilacji był znacznie wolniejszy (5-7 minut). Zapomniałem też całkowicie, że zostawiłem je włączone. Te dzienniki były moją szyjką butelki i wyłączenie ich znacznie przyspieszyło iterację. Mam nadzieję, że to komuś pomoże!

Tabrock
źródło
0

Napotkałem ten problem w najnowszym Visual Studio 2017.
Również wersja mojego programu do debugowania działała boleśnie wolno.

Usunąłem plik rozwiązania .slni utworzyłem nowy.

juergen d
źródło
0

Kroki, które działają

  1. Otwórz rozwiązanie i ponownie skompiluj wszystko
  2. Zamknij rozwiązanie
  3. Otwórz rozwiązanie i wyczyść
  4. Zamknij rozwiązanie
  5. Otwórz rozwiązanie i ponownie zbuduj wszystko
  6. Zamknij, a następnie otwórz rozwiązanie i powinno być dobrze. To działa dla mnie za każdym razem

Ostrożnie usuwając niektóre z tych plików ustawień, ponieważ utracisz zapisane ustawienia debugowania itp. I może to spowodować więcej szkód, niż myślisz

Hamish Redmond
źródło
0

Po prostu odśwież projekt / rozwiązanie. To zostanie rozwiązane.

SJ Karthi
źródło
0

W moim przypadku z VS 2017 mam wiele „czerwonych linii” pokazanych pod wszystkimi symbolami zdefiniowanymi w bibliotece innej firmy, ale mój projekt może faktycznie zostać zbudowany bez problemu. Wypróbowałem wszystkie sugerowane rozwiązania (takie jak usunięcie folderu .VS, ponowne uruchomienie VS itp.), Ale żadne z nich nie działało.

Na koniec naprawiłem to i tak: Otwieram stronę właściwości projektu aplikacji, a następnie przechodzę do „C / C ++ -> Ogólne -> Dodatkowe katalogi dołączane”, czyli miejsce, w którym umieszczam wszystkie potrzebne ścieżki nagłówków bibliotek innych firm. Usuwam wszystkie ścieżki (ale gdzieś je zapisuję), kliknij „OK”, aby potwierdzić. Potem wróciłem do tych samych ustawień, wklej te ścieżki z powrotem, kliknij „OK”, aby potwierdzić, a następnie wszystkie te „czerwone linie” znikną.

Hongkun Wang
źródło
0

Znalazłem to rozwiązanie:

  1. Zamknij program Visual Studio (upewnij się, że devenv.exe nie ma w Menedżerze zadań).
  2. Usuń %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\xx\ComponentModelCachekatalog.
  3. Uruchom ponownie program Visual Studio.
darrellh
źródło
0

Mam ten problem od miesięcy iw końcu go naprawiłem. Zamknięcie programu Visual Studio i usunięcie folderu .vs znajdującego się w katalogu rozwiązania NIE DZIAŁAŁO DLA MNIE.

W pliku web.config znajdował się tag assemblyIdentity, który odwoływał się do biblioteki, której nie było w moim folderze referencji. Usunąłem ten tag, wyczyściłem, zamknąłem i ponownie otworzyłem, a problem został rozwiązany.

  1. Sprawdź każdy z tagów assemblyIdentity w pliku web.config i porównaj je z folderem odwołań w eksploratorze rozwiązań
  2. Usuń wszystkie znaczniki assemblyIdentity, w tym nadrzędny tag zależny od zespołu, który nie jest wymieniony w folderze odniesień.
  3. Czyste rozwiązanie
  4. Zamknij i ponownie otwórz rozwiązanie
Benjo
źródło