web-dev-qa-db-de.com

Visual Studio zeigt Fehler an, auch wenn Projekte erstellt werden

Ich habe ein Problem mit Visual Studio auf einer C # -Lösung. Es werden völlig zufällige Fehler angezeigt, aber die Projekte werden erstellt. Im Moment habe ich 33 Dateien mit Fehlern, und ich sehe rote, geschwungene Linien in allen.

Ich habe versucht, die Lösung zu reinigen/neu zu erstellen, Visual Studio zu schließen und sogar meinen Computer neu zu starten. Ich habe auch sichergestellt, dass die in Debugging beschriebenen Schritte auch mit Compiler-Fehlern in Visual Studio ausgeführt werden. Ich kann .cs-Dateien ändern und sehe die Änderungen in der Lösung.

Hat jemand eine Idee, warum das so ist?

218
CydrickT

Wenn Sie ReSharper verwenden, versuchen Sie, den ReSharper-Cache zu leeren:

Im Menü ReSharper> Optionen> Umgebung> Allgemein> Caches löschen

und Deaktivieren und erneutes Aktivieren von ReSharper:

Im Menü Extras> Optionen> Neu laden> Allgemein> Anhalten/Wiederherstellen

299
CydrickT

Cache von Resharper löschen hat in meinem Fall nicht geholfen, suspend/restore und auch Repair Resharper mit dem neuesten Download von der JetBrains-Website versucht - keiner der beiden hat geholfen. Dies ist, nachdem ich versucht habe, VS zu schließen/wieder zu öffnen, meinen Computer neu zu starten, zu wiederholen, zu erstellen/neu zu erstellen und eine Kombination davon.

Es ist interessant, dass das Suspendieren von Resharper das Problem nach dem 2nd -Start von VS zu lösen schien, aber nach der Aktivierung von Resharper <war ich zurück. Ich habe versucht, diese Sequenz 2-3 Mal auszuführen, um das Muster sicherzustellen.

Wie auch immer, ich hatte immer noch Probleme, als ich diesen Artikel fand:

Also löschte ich die versteckte .SUO-Datei auf derselben Ordnerebene mit Lösung und löste magisch alle Rottöne.

Hinweis - Für Visual Studio 2015 befindet sich die Datei .SUO im verborgenen Ordner .vs/[Lösungsname]/v14.

144
Neolisk

tldr; Entladen Sie das Problemprojekt und laden Sie es erneut.

Wenn mir das passiert, versuche ich früher, VS zu schließen und es wieder zu öffnen. Das hat wahrscheinlich etwa die Hälfte der Zeit geklappt. Wenn es nicht funktionierte, würde ich die Lösung schließen, die .suo-Datei (oder den gesamten .vs-Ordner) löschen und die Lösung erneut öffnen. Bisher hat dies immer für mich funktioniert (mehr als 10 Mal in den letzten 6 Monaten), aber es ist etwas langweilig, da einige Dinge zurückgesetzt werden, wie z.

Da normalerweise nur ein Projekt das Problem hat, habe ich gerade versucht, das Projekt zu entladen und neu zu laden, und das hat funktioniert. Meine Stichprobengröße ist nur 1, aber sie ist viel schneller als die anderen beiden Optionen. Ich vermute, dass dies funktioniert, weil es in die .suo-Datei schreibt und möglicherweise den beschädigten Teil der Datei behebt, der das Problem verursacht hat.

Hinweis: Dies scheint für VS 2017 und 2015 zu funktionieren.

38
TTT

Ich reinigte die Lösung, schloss VS, öffnete sie erneut, baute die Lösung und rote, nicht aufgelöste Leitungen wurden gesäubert und der Aufbau war erfolgreich.

33
pixel

Ich habe festgestellt, dass dies häufig vorkommt, wenn Git in Visual Studio 2017 verwendet wird, Wechseln zwischen Zweigen mit abhängigen Codeänderungen. Obwohl das Projekt erfolgreich erstellt wird, bleiben Fehler in der Fehlerliste. 

Diese Fehler sind häufig Namespace-Probleme und fehlende Verweise, auch wenn der Bibliotheksverweis vorhanden ist.

Lösen:

  • Schließen Sie Visual Studio
  • Löschen Sie die Datei {sln-root} .vs\SlnName\v15.suo (ausgeblendet).
  • Starten Sie Visual Studio neu
18
Rebecca

Ich hatte ein Problem wie dieses, bei dem Intellisense die Existenz eines Projekts nicht zu erkennen schien (viele "Ich kann diesen Typ nicht finden", "Dieser Namespace existiert nicht" usw.). 

Das Entfernen und erneute Hinzufügen der Projektreferenz in allen referenzierenden Projekten würde das Problem beheben. Die zugrunde liegende Ursache könnte jedoch durch Bearbeiten der .proj-Datei des problematischen Projekts behoben werden.

Oben in der ".csproj" -Datei für "fehlende" Projekte befindet sich ein Element:

<ProjectGuid>{GUID}</ProjectGuid>

in allen referenzierenden Projekten waren .csproj-Dateien Projektreferenzen:

<ProjectReference Include="..\OffendingProject\OffendingProject.csproj">
  <Project>{ANOTHER-GUID}</Project>
  <Name>Offending Project</Name>
</ProjectReference>

Die Referenzierung GUID stimmte nicht mit der GUID des Projekts überein. Durch Ersetzen von {GUID} durch {ANOTHER-GUID} wurde das Problem behoben, ohne dass jedes referenzierende Projekt durchlaufen werden musste.

9
Philip C

Ich habe alle 6 Optionen ausprobiert, nichts hat für mich funktioniert. Die folgende Lösung hat mein Problem gelöst. 

Schließen Sie VS . Löschen Sie den versteckten Ordner ".vs" neben Ihrer Lösungsdatei . Starten Sie VS neu und laden Sie die Lösung.

5
suresh t

Löschen Sie den versteckten Dateipfad = Ihre Lösung \ .vs \ Ihren Lösungsnamen \ v15\.suo

4
NoXSaeeD

für VS-2017 funktionierte das Löschen des .vs-Ordners für mich.

3

Gelegentlich muss ich eine benutzerdefinierte Bereinigung durchführen, indem ich alle Projekte durchsehe und die Ordner "bin" und "obj" manuell lösche. Um sie in Visual Studio anzuzeigen, müssen Sie für jedes Projekt ausgeblendete Dateien und Ordner aktivieren. Danach erstellen Sie die Lösung neu.

3
Technobabble

Möglicherweise versuchen Sie, Ihren Intellisense-Cache zurückzusetzen. Ich habe in Visual Studio 2012 ein ähnliches Problem gehabt, als ich in einem großen Projekt mit vielen partiellen Klassendefinitionen gearbeitet habe.

2
Daniel Nachtrub

Hier ist eine Sammlung beliebter Antworten. Das OP der Antwort wurde angehoben, wenn es Ihnen geholfen hat:

Option 1: Bereinigen, Erstellen und Aktualisieren ( @Mike Fuchs Option)

Versuchen Sie, wie in @Mike Fuchs erwähnt, die folgenden Operationen:

Im Menü Build> Clean Solution

Und

Im Menü Erstellen> Lösung erstellen

und wählen Sie das betreffende Projekt aus und klicken Sie auf die Aktualisierungsschaltfläche:

 Refresh Button

Option 2: Bereinigen, Schließen, Neustarten und Erstellen ( @Pixel Option)

Versuchen Sie, wie in @Pixel erwähnt, die folgende Reihenfolge von Operationen:

  1. Reinigen Sie die Lösung
  2. Schließen Sie Visual Studio
  3. Öffnen Sie Visual Studio
  4. Lösung erstellen

Option 3: Löschen des ReSharper-Cache (Option @CydrickT )

Wenn Sie ReSharper verwenden, versuchen Sie, den ReSharper-Cache zu leeren:

Im Menü ReSharper> Optionen> Umgebung> Allgemein> Caches löschen

und Deaktivieren und erneutes Aktivieren von ReSharper:

Im Menü Extras> Optionen> Neu laden> Allgemein> Anhalten/Wiederherstellen

Option 4: Löschen der .suo-Datei (Option @Neolisk )

Wie @Neolisk erwähnt, kann das Problem durch das Löschen der .suo-Datei behoben werden. Für Visual Studio 2015 befindet sich die Datei in:

[Lösungspfad] /. Vs/[Name der Lösung] /v14/.suo

Und für Visual Studio 2017:

[Pfad der Lösung] /. Vs/[Name der Lösung] /v15/.suo

Beachten Sie, dass das Verzeichnis .vs verborgen ist.

Option 5: Projekt entladen und neu laden (Option @TTT )

Wie in @TTT erwähnt, versuchen Sie, das Projekt zu entladen, das Probleme verursacht:

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Projekt entfernen.

Und es neu laden

Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Projekt neu laden.

Option 6: Entfernen und Hinzufügen von Microsoft.CSharp-Referenz (Option @Guilherme )

Versuchen Sie, wie in " @Guilherme " erwähnt, den Verweis auf "Microsoft.CSharp" aus den Projekten mit Problemen zu entfernen und hinzuzufügen. 

Erweitern Sie im Projektmappen-Explorer das Projekt, erweitern Sie "Verweise", klicken Sie mit der rechten Maustaste auf "Microsoft.CSharp" und klicken Sie auf Entfernen. 

Klicken Sie dann mit der rechten Maustaste auf Verweise> Referenz hinzufügen, wählen Sie "Microsoft.CSharp" aus der Liste aus und klicken Sie auf OK

2
CydrickT

Folgende Lösung hat bei mir funktioniert

1 - Schließen Sie VS

2 - Löschen Sie den .vs-Ordner

3 - VS öffnen

4 - Lösung erstellen

2
Vijay Hugar
  1. schließen Sie zuerst die Lösung.
  2. dann Löschen der Lösungscache-Datei (in Speicherort C:\Users\Documents\Visual Studio\Backup Files/Projektcache-Datei)
  3. dann .suo Datei löschen 
  4. dann Lösung öffnen und bauen. 

Ich hoffe dein Problem zu lösen 

1
Mahfuz Morshed

0 - Rechtsklick auf die Lösung und saubere Lösung

1 - Schließen Sie VS 

2 - Löschen Sie die .suo-Datei des Projekts

3 - VS öffnen

4 - Lösung erstellen

1
nPcomp

Nachdem ich alle aufgeführten Optionen ausprobiert hatte, entdeckte ich einen weiteren Grund, warum dies passieren kann. Wenn Ihnen jemand den Quellcode als Zip gesendet hat oder Sie einen Zip heruntergeladen haben, hat Windows möglicherweise alle Dateien blockiert. 2 Möglichkeiten, dies zu lösen:

Methode 1:

Klicken Sie mit der rechten Maustaste auf die ursprüngliche ZIP-Datei -> Aktivieren Sie 'Blockierung aufheben' -> Klicken Sie auf Übernehmen

Methode 2:

Wenn dies keine Option ist, müssen Sie die Eigenschaften einer Datei im Lösungsordner öffnen, statt Eigenschaften zu öffnen.

Get-ChildItem -Path 'C:\<ROOT FOLDER OF SOLUTION>\' -Recurse | Unblock-File
1
Conor Gallagher

Für meinen speziellen Fall war es eine Servicereferenz, die ein anderer Entwickler in die Hauptniederlassung zusammengeführt hatte. Was völlig in Ordnung war, außer dass das hervorgehobene Syntax-Highlight die generierte Serviceklasse nicht aufgelöst hat und die Quelle vollständig rot unterstrichen wurde. Das Reinigen, Wiederherstellen und Neustarten hat nichts bewirkt. 

Alles, was ich tun musste, war die Aktualisierung der Servicereferenz, und VS schaffte es, die Teile hinter den Kulissen zusammenzufügen. Keine Änderungen im Quellcode oder den generierten Dateien.

Das Projekt wurde entladen und neu geladen.

1
Ankush Jain

Ich bin gerade auf dieses Problem gestoßen, nachdem ich ein Git-Commit zurückgesetzt habe, das Dateien wieder in mein Projekt eingefügt hat.

Das Reinigen und Wiederherstellen des Projekts funktionierte nicht, auch wenn ich VS zwischen jedem Schritt geschlossen habe.

Was schließlich funktioniert hat, war, die Datei in etwas anderes umzubenennen und sie wieder zu ändern. : facepalm:

1
KidCode

in meinem Fall behielt vs die importierten Namespaces niemals in den Projekteigenschaften> Referenzen bei

als ich versuchte, sie erneut hinzuzufügen/zu überprüfen, konnte ich nicht und vs warf einen Fehler und beim Speichern von Projekt vs stürzte ab. Beim erneuten Öffnen wurden alle standardmäßig importierten Namespaces (system.data etc ...) erneut angekreuzt und es wurde dann alles ohne Fehler erkannt

0
m butler

Ein Kollege von mir hat diese Ausgabe heute erlebt. Wir haben viele der Empfehlungen hier ausprobiert, und außer der nachfolgend beschriebenen Lösung hat keine funktioniert.

Problem:

Die Erstellung von Projekten ist gut, aber Intellisense erkennt bestimmte Typen nicht und markiert bestimmte using-Anweisungen als ungültig.

Lösung:

Ändern Sie die 'Solution Platform' (in VS 2017 ist dies die Dropdown-Liste neben der Dropdown-Liste der Lösungskonfiguration, die Werte wie x86, x64, AnyCPU, Mixed Platforms usw. enthält) in AnyCPU

Die Plattform für Ihr Projekt kann variieren, es scheint jedoch, dass einige Verweise möglicherweise nicht für alle Plattformen gültig sind.

0
AperioOculus

Wenn Sie einfach nur die Lösung bereinigen, verschwinden die Fehler, aber möglicherweise werden sie nach einer Weile oder beim nächsten Build wieder angezeigt.

0
meJustAndrew

Ich habe bemerkt, dass Visual Studio (2017) beim Wechseln von Git-Zweigen manchmal keine Typen von Dateien erkennt, die im zweiten Zweig hinzugefügt wurden. Durch das Löschen des .vs-Ordners wird dies gelöst, es werden jedoch alle Arbeitsbereichseinstellungen in den Papierkorb verschoben. Dieser Trick scheint für mich gut zu funktionieren:

  1. Projektmappen-Explorer -> Suchen Sie die Datei mit der nicht erkannten Klasse.
  2. Klicken Sie oben im Projektmappen-Explorer auf Alle Dateien anzeigen.
  3. Klicken Sie mit der rechten Maustaste auf die Datei -> Vom Projekt ausschließen.
  4. Klicken Sie erneut mit der rechten Maustaste auf die Datei -> In Projekt einbeziehen.

Dies führt dazu, dass Intellisense die Datei analysiert, die beim Wechseln der Verzweigungen nicht gefunden wurde.

0
Erik

Dieses Problem wurde mit einem einzelnen Typ verursacht, der von Visual Studio nicht erkannt wurde, was den roten Kringel zeigte, obwohl die Lösung erfolgreich aufgebaut wurde. Ich habe im Projektmappen-Explorer festgestellt, dass die Datei links nicht den Erweiterungspfeil hatte, der die Klassen und Eigenschaften der Erweiterung anzeigt.

Das Update bestand darin, die Datei aus dem Projekt auszuschließen und zu speichern/zu erstellen, was einen erwarteten Fehler verursachte, und dann die Datei in das Projekt aufzunehmen und zu speichern und zu erstellen.

Nachdem Sie diese Schritte ausgeführt haben, erkannte Visual Studio meinen Typ erneut. Betrachtet man den Unterschied in git, so scheint es, lag das Problem daran, dass die Zeilenenden in der <Compile Include="..." />-Zeile meiner .csproj-Datei nicht übereinstimmen.

0
Thorb

Hatte dieses Problem bei der Arbeit (läuft VS2017). Versuchte alle Antworten hier. Keine Freude.

Das Projekt würde gut funktionieren, beschwert sich aber, dass Namespaces/Typen nicht gefunden werden konnten. Rote Schnörkel überall. Viele Fehler im Fenster Fehlerliste.

Meine Lösung enthielt 3 Projekte.

Festgestellt, dass 3 der NuGet-Bibliotheksreferenzen für eines der Projekte außer Betrieb waren . Konsolidierte die referenzierten Bibliotheksversionen und Bingo.

Hoffe das hilft jemandem.

Brett.

0
Brett

Ich habe festgestellt, dass dies passieren kann, wenn das referenzierte Projekt auf eine höhere Version des Frameworks abzielt als das Projekt, das versucht, es zu verwenden. Sie können feststellen, ob dies das Problem ist, indem Sie zum Ausgabefenster gehen und nach etwas ähnlichem wie diesem suchen: 

Die Primärreferenz "my_reference" konnte nicht aufgelöst werden, da sie wurde für das Framework ".NETFramework, Version = v4.7.2" erstellt. Diese ist eine höhere Version als das aktuell anvisierte Framework ".NETFramework, Version = v4.7".

Die Lösung besteht darin, das Zielgerüst eines der beiden Projekte zu ändern.

0
michaela112358

TL; DR: Führen Sie eine Neuinstallation von Visual Studio durch

Nachdem ich einige Stunden verschwendet hatte, konnte ich es immer noch nicht für Visual Studio 2017 beheben. Ich installierte dann PREVIEW für Visual Studio 2019 und plötzlich zeigt IntelliSense die Mitglieder der STL-Klassen erneut an (was bei Visual Studio 2017 nicht der Fall ist ). 

Ich vermute also, dass mit Visual Studio selbst etwas nicht stimmt (möglicherweise etwas im Cache-Verzeichnis oder im Allgemeinen etwas auf Ihrem PC, das nicht direkt mit einer bestimmten Lösung zusammenhängt), das durch eine saubere und vollständige Lösung gelöst werden kann -Installation von Visual Studio. Ich weiß, das ist eine blöde "Lösung", aber in meinem Fall hatte nur eine neue Installation von Visual Studio (2019) Auswirkungen.

Wie bereits erwähnt, waren in meinem Fall nur STL-Klassen betroffen. IntelliSense würde ihre Mitglieder nicht anzeigen, was ungerade ist. Ich dachte, es könnte etwas mit vorkompilierten Headern zu tun haben. Irgendwo habe ich gelesen, dass sich die STL und das Projekt auf demselben Laufwerk befinden sollten. Wenn Sie sie auf dasselbe Laufwerk setzen, sollte das Problem gelöst werden. Keiner dieser Wege führte jedoch zum Erfolg.

0
j00hi