Visual Studio kompiliert gut, zeigt aber immer noch rote Linien

91

Ich benutze VS 2012 und es hat alles gut funktioniert, bis ich anfing, ein lustiges Verhalten zu beobachten. Wenn ich meinen Code öffne, werden rote Unterstreichungen angezeigt, die normalerweise angezeigt werden, wenn ein Fehler in unserem Code vorliegt. Überraschenderweise kompiliert Code alles gut. Ich habe folgende Beobachtungen gemacht, die überhaupt nicht normal sind.

  1. Rot Untersticht im Code
  2. Beim Reinigen oder Erstellen der Lösung kein Fehler.
  3. rote Unterstreichungen verschwinden für einige Zeit, nachdem ich die Lösung erstellt / gereinigt habe, kommen aber irgendwann wieder.
  4. Aus diesem Grund hat meine Intelligenz aufgehört zu arbeiten.
  5. Ich kann nicht mit der rechten Maustaste auf eine Komponente klicken und zu deren Definition gehen.

Irgendwelche Ideen?

Hat verloren
quelle
Welcher Code wird unterstrichen? Können Sie Beispiele nennen?
Mathe
Führen Sie vielleicht alten Code aus? Versuchen Sie es mit einer kleinen Implementierung, die etwas anzeigt. Wenn nichts passiert, führen Sie möglicherweise alten Code aus.
Max
Führen Sie Reshaper oder ein anderes Tool aus, das möglicherweise die Unterstreichungen ausführt?
AlG
Gilt das für alle Codedateien? Es passierte mir einmal, als ich eine Datei öffnete, die nicht aus meiner Lösung stammte, und nicht in der Lage war, zur Definition zu gehen, gab sie für mich preis.
Pierre-Luc Pineault

Antworten:

48

Löschen Sie den Inhalt des temporären ASP.NET-Ordners und erstellen Sie ihn neu. Es befindet sich entweder in Ihrem Benutzerordner (für IIS Express - \ AppData \ Local \ Temp \ Temporäre ASP.NET-Dateien ) oder im Windows-Verzeichnis (für IIS - C: \ Windows \ Microsoft.Net \ Framework \ vx.xx \) Temporäre ASP.NET-Dateien )

Pfade befinden sich außerhalb meines Kopfes und sind möglicherweise nicht korrekt

levelnis
quelle
Wenn dies nur das eine Projekt / die eine Lösung betrifft und Sie git mit den entsprechenden Ignorierungen für temporäre Dateien verwenden, versuchen Sie alternativ, Änderungen zu übernehmen, Ihre Arbeitskopie zu löschen und das Auschecken Ihres Zweigs zu erzwingen.
Kyle
3
Was ist, wenn der Fehler in Visual Studio für Mac auftritt? Was wäre der Pfad für diesen Ordner?
Verlor
1
Ich musste VS danach schließen und öffnen und es funktioniert. Danke
MusicAndCode
160

Visual Studio 2017:

Visual Studio schließen und entfernen .vs Ordners im Lösungsverzeichnis hat bei mir funktioniert.

Dieser Ordner hat ein hiddenAttribut. Möglicherweise müssen Sie die Einstellungen in den Ordneroptionen ändern, um versteckte Dateien anzuzeigen.

VeganHunter
quelle
2
Für VS 2017 funktionierte diese Lösung dort, wo es keiner der anderen auf dieser Seite tat (wie das Reinigen von temporären Ordnern und das Reinigen von / bin und / obj). Die .vs waren auf meinem System nicht wie erwähnt "versteckt" (wohingegen z. B. mein .git-Ordner natürlich war, damit ich den Unterschied erkennen konnte).
secretwep
1
Ich habe versucht, die .suo-Datei zu löschen, aber sie wird erneut erstellt, wenn ich VS 2017
Amit Kulat
3
@AmitKulat Ja, die .suo-Datei ist ein strukturierter Speicher, der von Visual Studio erstellt wird und eine Reihe von Einstellungen enthält. Aufgrund eines Fehlers funktioniert es nicht mehr richtig. Wenn Sie es entfernen, wird es mit den richtigen Standardeinstellungen neu erstellt.
VeganHunter
4
"Nicht unterstützt ... Diese Version von Visual Studio kann die folgenden Projekte nicht öffnen ..." - ein ziemlich herzzerreißendes Popup nach dem Löschen des .vs-Verzeichnisses. Aber es scheint gutartig. Klicken Sie auf OK und die Lösung wird nach einem Migrationsbericht trotzdem geöffnet. Dies kann ein nicht verwandtes Problem sein, das bis zum Löschen von .vs inaktiv war. Berichterstattung hier für die Nachwelt.
Bob Stein
3
Dies funktioniert auch für Visual Studio 2019 (Vorschau. Löschen des .vs-Ordners)
Albert Romkes
10

Hatte gerade dieses Problem bei der Arbeit mit einer Lösung, die in Visual Studio 2012 erstellt wurde, aber 2013 ausgeführt wurde. Ich habe Visual Studio geschlossen, alle Verzeichnisse \ bin und \ obj gelöscht und das Problem war behoben.

Kevin Brydon
quelle
9

Für mich wurde dieses Problem behoben, als ich das Projekt erneut entlud und neu lud. Ich habe für mich gearbeitet, hoffe es funktioniert auch für dich :)

Skr
quelle
7

Ich weiß, dass dies alt ist, aber für den Fall, dass Leute diesen Thread finden, wie ich es von Google getan habe. Ich hatte dieses Problem, nachdem ich einige Konflikte von svn gelöst hatte. Die Lösung enthält mehrere Projekte und ich habe einige Konflikte in einigen verschiedenen Projekten gelöst. Ich habe eine Build -> Clean Solution durchgeführt, gefolgt von einer Build -> Rebuild Solution und alles war wieder gut.

Luke
quelle
6

Haben Sie Plugins wie Resharper installiert? Ich hatte ein Problem mit einem schlechten Plugin.

Versuchen Sie, Visual Studio im abgesicherten Modus auszuführen, um zu verhindern, dass Plugins ausgeführt werden.

devenv /Safemode
Marko
quelle
10
Ich habe Resharper verwendet. Sie können ReSharper deaktivieren, indem Sie im Menü Extras -> Optionen -> ReSharper auf die Schaltfläche Anhalten klicken. Dann nimm es wieder auf, es hat mir geholfen.
Oleg Kyrylchuk
6

Ich hatte dieses Problem und es hing mit ReSharper zusammen.

Lösungsschritte für mich:

1) Deaktivieren Sie ReSharper

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

2) Lösung erstellen

(Ctrl-Shift-B)

3) Aktivieren Sie ReSharper erneut

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

Steve

samneric
quelle
Hat für mich gearbeitet. Ja. ReSharper war das Problem.
Muhammad Saqib
4

Wenn Sie Resharper wie ich verwenden, können Sie den Resharper-Cache über diesen Link löschen: 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
quelle
Die Schaltfläche 'Cache löschen' in der Umgebung | Die allgemeine Seite der ReSharper-Optionen hat mein Problem gelöst. Danke für den Hinweis!
NilsK
3

In vs2013 habe ich dieses Problem gelöst, indem ich alle meine obj / bin-Ordner in allen Projekten gelöscht habe. Das Problem war wahrscheinlich auf Lösungskonfigurationen zurückzuführen, die ich gelöscht, aber nicht ordnungsgemäß bereinigt hatte, da beim Erstellen einer Build -> Clean Solution die alten Ausgaben nicht aus den Ordnern obj / bin entfernt werden.

Rocklan
quelle
1

Was für mich funktioniert, ist das Löschen der IntelliSense-Indexdatei.

Die IntelliSense-Datei befindet sich im selben Verzeichnis wie Ihre Lösung.

Der Dateiname lautet SolutionName.sdf

Löschen Sie einfach diese Datei, öffnen Sie die Lösung erneut, und IntelliSense beginnt mit der Neuerstellung der Indexdatei. Danach ist das Problem behoben.

A. Franz
quelle
1

Dies hat bei mir in Visual Studio Enterprise 2017 funktioniert:

  1. Navigieren Sie zu Extras> Optionen> Texteditor> JavaSCript / TypeScript> Flusen> Allgemein

  2. Deaktivieren Sie "ESLint aktivieren".

Gerald
quelle
1
Nach Tagen der Recherche, Entladen / Laden von Projekten und vielen .vs-Ordnerentfernungen war dies die Hauptursache für mein Problem, daher halte ich dies für eine gültige Antwort. Möge jemand, irgendwo, dich segnen, mein Sohn.
Nandolcs
1

Ich bin auch darauf gestoßen und konnte Visual Studio wie folgt in den normalen Zustand zurückversetzen:

  1. Identifizieren Sie das Projekt, aus dem der rot umrandete Code stammt
  2. Entfernen Sie das rote Linienprojekt aus den Referenzen, in denen es verwendet wird (Projektname \ Referenzen - Rechtsklick, Referenzen hinzufügen, rotes Linienprojekt deaktivieren)
  3. Build (Sie sollten jetzt Fehler bekommen)
  4. Fügen Sie die gerade entfernte Projektreferenz erneut hinzu
  5. Wieder bauen
  6. Rote Linien sollten entfernt und das Projekt erstellt werden!
Brian Mikinski
quelle
1

Ich hatte das gleiche Problem mit vielen roten Linien in mehreren * cpp-Quelldateien. Obwohl der Code perfekt kompiliert wurde. Keine der anderen Lösungen hat bei mir funktioniert.

Durch Ändern der Reihenfolge der # include-Zeilen einer * .cpp-Datei können die roten Linien verschwinden - und mit der wiederhergestellten Reihenfolge erneut angezeigt werden.

Dann bemerkte ich, dass eine Header-Datei zweimal in einer einzelnen * .cpp-Datei enthalten war. Ich entfernte den zweiten und - alles war in Ordnung.

Das zweimalige Einfügen einer Header-Datei in dieselbe * .cpp-Datei scheint für den Compiler, aber für den Intellisense-Teil kein Problem zu sein.

Hartwin
quelle
0

Vielleicht ist es spät hinzuzufügen, aber ich hoffe, es könnte noch jemandem helfen. Ich hatte ein ähnliches Problem, als ich in einigen Dateien viele rote Kringel sah. Ich habe alle oben vorgeschlagenen Antworten ausprobiert, aber nichts schien zu funktionieren. In dem Moment, in dem ich anfing, die Klassen zu durchsuchen, verschwanden die Strukturen in anderen Dateien, für die sich beschwerdeführende Dateien referenzierten, das Problem. Es schien, dass Intellisense aus irgendeinem Grund Abhängigkeiten nicht alleine lösen konnte.

Irsis
quelle
3
Ich sehe keine Lösung in Ihrer Antwort. "Es schien, dass Intellisense Abhängigkeiten nicht selbst auflösen konnte ..." - sagen Sie, indem Sie "durch die Klassen, Strukturen blättern ", haben Sie Intellisense geholfen , die Abhängigkeiten aufzulösen?
Sнаđошƒаӽ
4
@ Sнаđошƒаӽ Ich denke, genau das sagt er.
Robert Columbia
@ RobertColumbia Keine Beleidigung für OP, aber ich finde das einfach lächerlich.
Sнаđошƒаӽ
@ Sнаđошƒаӽ nun, das ist was er sagt. Wenn Sie der Meinung sind, dass diese Strategie nicht hilfreich ist, stimmen Sie die Antwort ab.
Robert Columbia
@ Sнаđошƒаӽ Nun, ich habe erreicht, um zu posten, weil ich auch vor dem gleichen Problem stand. Zuerst habe ich alle Antworten ausprobiert, bevor ich gepostet habe, was für mich funktioniert hat. Wie andere auch aufgrund ihrer Erfahrungen geantwortet haben. Ich sehe nichts falsch daran. Stattdessen könnte es auch jemand anderem helfen.
Irsis
0

Für mich hatte ich einmal die Fusionsprotokollierung aktiviert, um einige Fehler bei der Assemblyabhängigkeit zu debuggen (fuslogvw von der CMD-Eingabeaufforderung). Das war vor Monaten und ich hatte seitdem viel langsamere Bauzeiten (5-7 Minuten). Ich hatte auch völlig vergessen, dass ich sie aktiviert gelassen hatte. Diese Protokolle waren mein Flaschenhals und das Deaktivieren hat das Iterieren viel schneller gemacht. Hoffe das hilft jemandem!

Tabrock
quelle
0

Ich bin mit dem neuesten Visual Studio 2017 auf dieses Problem gestoßen.
Auch die Debug-Version meines Programms lief schmerzhaft langsam.

Ich habe die Lösungsdatei gelöscht .slnund eine neue erstellt.

Jürgen d
quelle
0

Schritte, die funktionieren

  1. Öffnen Sie die Lösung und erstellen Sie alles neu
  2. Lösung schließen
  3. Lösung öffnen und reinigen
  4. Lösung schließen
  5. Öffnen Sie die Lösung und erstellen Sie alles neu
  6. Lösung schließen und dann öffnen und es sollte gut sein. Das funktioniert bei mir jedes Mal

Wenn Sie einige dieser Einstellungsdateien sorgfältig löschen, gehen gespeicherte Debug-Einstellungen usw. verloren und es kann mehr Schaden anrichten, als Sie denken

Hamish Redmond
quelle
0

Aktualisieren Sie einfach das Projekt / die Lösung. Es wird gelöst.

SJ Karthi
quelle
0

In meinem Fall mit VS 2017 werden unter allen in einer Drittanbieter-Bibliothek definierten Symbolen viele "rote Linien" angezeigt, aber mein Projekt kann problemlos erstellt werden. Ich habe alle vorgeschlagenen Lösungen ausprobiert (z. B. .VS-Ordner löschen, VS neu starten usw.), aber keine davon funktioniert.

Schließlich habe ich das Problem behoben und so: Ich öffne die Eigenschaftsseite meines App-Projekts und gehe dann zu "C / C ++ -> Allgemein -> Zusätzliche Einschlussverzeichnisse". Hier habe ich alle erforderlichen Bibliotheks-Header-Pfade von Drittanbietern abgelegt. Ich lösche den gesamten Pfad (speichere ihn aber irgendwo) und klicke zur Bestätigung auf "OK". Dann bin ich zur gleichen Einstellung zurückgekehrt, habe diesen Pfad wieder eingefügt, zur Bestätigung auf "OK" geklickt, dann sind alle "roten Linien" verschwunden.

Hongkun Wang
quelle
0

Diese Lösung gefunden:

  1. Schließen Sie Visual Studio (stellen Sie sicher, dass devenv.exe nicht im Task-Manager vorhanden ist).
  2. Löschen Sie das %USERPROFILE%\AppData\Local\Microsoft\VisualStudio\xx\ComponentModelCacheVerzeichnis.
  3. Starten Sie Visual Studio neu.
darrellh
quelle