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?


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


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.


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 :)


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ął.


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.


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


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

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.

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.


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.


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”


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!

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.


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.


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!


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.


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



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ą.


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.

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.