Frage Visual Studio 2015: Intellisense-Fehler, aber Lösung kompiliert


Wir evaluieren derzeit das neue Visual Studio 2015 und stießen auf ein seltsames Problem mit Intellisense. Als ich unsere Hauptlösung mit dem neuen Studio kompiliert habe, ist der Build erfolgreich, aber trotzdem werden 6 Fehler angezeigt.

Ich habe festgestellt, dass es sich nicht um einen echten Fehler handelt, sondern nur um einen Intellisense-Fehler. Der Code ist definitiv korrekt und alles wurde erfolgreich kompiliert. Der Code ist jedoch rot markiert und es erscheinen Fehler in der Fehlerliste.

Alle 6 Fehler haben denselben Ursprung. Es ist ein einfacher Konstruktoraufruf. Seltsam genug, aber es gibt auch einige Vorkommen des exakt gleichen Konstruktors ohne irgendwelche Fehler.

Die Fehlermeldung:

Code: CS1729
Message: '<the class>' does not contain a constructor that takes that many arguments.
Project: <the project name>
File: <the path to the file>

Das neue Studio wurde auf einem neu installierten Windows 7 ohne Legacy-Software installiert (keine VS13).

Ich habe bereits versucht, die Caches zu löschen, löschte die SUO-Datei, löschte bin und obj Verzeichnisse, säuberte und baute die Lösung usw. auf. Aber nichts funktionierte.

Kann mir jemand dieses Verhalten erklären?


75
2017-08-11 13:49


Ursprung


Antworten:


Auch hatte dieses Problem mit einem migrierten Projekt, so dass ich die Microsoft.CSharp-DLL verwiesen. In einigen Projekten musste ich die Referenz im Projekt entfernen und hinzufügen.


35
2017-09-15 12:40



Ich hatte Tausende von IntelliSense-Fehlern und 0 Build-Fehler. Nach dem Löschen der .su-Datei ist ein Neustart von VS intellisense-Fehlern nicht mehr möglich.

Suo-Datei befindet sich relativ zur Quelle in: .vs \ SolutionName \ v14.suo

Laut Kommentar: Vorsicht, dass * .suo eine versteckte Datei ist.

Bearbeiten: Laut den Kommentaren hat VS2017 das gleiche Problem, so dass Sie ähnliche Lösung verwenden können: Löschen .vs \ SolutionName \ v15.suo


127
2017-11-02 12:30



Ein ähnliches Problem wurde in Visual Studio 2017 ASP.Net Core Project festgestellt. Die folgenden Schritte haben den Trick für mich gemacht

  1. Führen Sie eine saubere Lösung durch
  2. Schließen VS
  3. Löschen Sie. Suo-Datei & Löschen Sie bin / obj Verzeichnisse
  4. VS erneut öffnen

8
2018-04-01 21:24



Auch hatte dieses Problem (der Titel, nicht die spezifische Fehlermeldung), sowie squiggly Zeilen im Editor. Die erste Squiggly Line ist unter der ersten #include Anweisung, die einen vorkompilierten Header benennt. Intellisense schließt den vorkompilierten Header nicht ein, führt diesen jedoch nicht als Fehler auf; Stattdessen listet es Fehler weiter unten in der Datei auf, die (sehr zu Recht) auf Deklarationen im vorkompilierten Header basieren.

Der Grund, dass Intellisense den vorkompilierten Header in meiner Umgebung nicht findet, ist, dass der angegebene Header keine tatsächliche Datei ist. Es muss nicht in einer anderen VC- oder gcc-Version sein, die ich verwendet habe, noch im Compiler von 2015, solange die vorkompilierten Header-Einstellungen korrekt konfiguriert sind. Anscheinend nicht mehr für Intellisense. Ich bin mir nicht ganz sicher, ob es 2013 anders war, vielleicht habe ich es einfach nie bemerkt.

Im unwahrscheinlichen Fall, dass dies das hier gemeldete Problem ist, ist die Lösung einfach: Erstellen Sie eine kleine Datei mit dem Namen des vorkompilierten Headers, wie in #include Anweisungen, und lassen Sie diese Datei den tatsächlichen Namen des vorkompilierten Header enthalten.

Wenn Sie sich wundern ... warum diese Unterscheidung zwischen dem vorkompilierten Header-Namen in der '# include' Anweisung und dem tatsächlichen Dateinamen des vorkompilierten Headers? Gerade weil es garantiert, dass vorkompilierte Header-Einstellungen korrekt konfiguriert sind. Überall dort, wo ein vorkompilierter Header "#included" ist, kann keine Datei enthalten sein. Entweder wird eine tatsächlich vorkompilierte (binäre) Version des aktuellen Headers gelesen oder die Kompilierung schlägt fehl. Offensichtlich ist ein Nachteil, dass es verwirrt Menschen den Code lesen, nicht nur Intellisense.


6
2017-09-15 20:55



Ähnliches Problem wie andere, aber unterschiedliche Auflösung. Für den Fall, dass ich jemand anderem helfen kann.

Ausführen von Visual Studio 2017 15.5.2. Ich benutze Git und wechsle häufig Zweige. Vor einigen Wochen fing ich an, Editoren zu haben, die mir Fehler zeigten (alle bezogen auf Typen, die nicht gefunden werden konnten, obwohl Referenzen gültig waren). Compile hat super funktioniert. Ich habe das gleiche Thema in VS 2017 15.6 Preview (6. Januar 2018) bestätigt. Ich würde versuchen, Cache-, SUO-Dateien oder bin / obj-Ordner und keine Auswirkungen zu löschen. Zuerst scheint es zu funktionieren. Öffnen Sie Visual Studio und alles würde gut aussehen. Verwenden Sie "Lösung neu erstellen", und die IntelliSense-Fehler werden zurückgegeben. Ich habe sogar versucht, Visual Studio zu deinstallieren / neu zu installieren.

Ich hatte das gleiche Problem auf zwei Rechnern, beide mit derselben Version von Visual Studio.

Wenn man sich die Fehler über fehlende Typen ansieht, scheinen sie alle aus zwei referenzierten Projekten zu stammen. Eine dieser Referenzen war ein gemeinsames Projekt, das von fast jedem anderen Projekt in der Lösung verwendet wurde, aber eines davon war ein kleines Projekt ohne viele Referenzen. Zufälligerweise wurde das kleine Projekt auch von meinem größeren gemeinsamen Projekt referenziert. In Visual Studio habe ich das kleine Projekt entladen und neu geladen. Die Fehler gingen weg! Sie sind nicht auf Rebuild Solution zurückgekommen.

Ich wechselte dann Git-Zweige und die Fehler kamen alle zurück. Glücklicherweise wiederholte ich die obigen Schritte des Entladens / Neuladens des kleinen Projekts und die Fehler verschwanden.

Jedes Mal, wenn ich die Git-Zweige wechsele, kommen die Fehler zurück, bis ich diesen Vorgang wiederhole. Es gibt keine Änderungen zwischen den Git-Verzweigungen für das kleinere Projekt, das ich entlade / neu lade. Unklar, warum diese Sequenz mein Problem behebt.


5
2018-01-06 17:39



Heute habe ich ein ähnliches Problem mit MSVC ++ 2015. Ich habe fast aufgegeben und beschlossen, ohne IDE-Hinweise weiterzugehen, aber gelegentlich habe ich bemerkt, dass stdafx.h des Teilprojekts, mit dem ich Probleme hatte, keine Standard-Bibliotheks-Header enthält. Ich schlug vor, dass es die Modulkompilierung verlangsamen könnte, aber die Einbeziehung der Standard-Header dort behoben Intellisense auch.


0
2018-01-22 19:40



Ich hatte mehrere stdfax.h in zusätzliche Verzeichnisse einschließen. Stellen Sie sicher, dass stdafx.h Du beabsichtigst, ist zuerst in deinem Weg.


0
2018-05-30 14:56



Ich hatte ein ähnliches Problem mit verschiedenen Visual Studio-Versionen.

Das Löschen des .suo- oder .vs-Ordners hat mir nicht geholfen.

Die Lösung für mich war, dass ich die Extension StopOnFirstBuildError aktiv hatte. Nach dem Ausschalten von "Build Build on First Error" im Build-Menü und nachdem die Lösung vollständig erstellt wurde, gingen die von Intellisense angezeigten Fehler verloren.


0
2018-03-13 07:34



Ich habe die Intellisearch-Fehler nur beim Veröffentlichen einer Website gesehen. (ASP / C # -Site, VS 2017). Sie haben die Veröffentlichung gebrochen. Site lief lokal gut.

Die Fehler wurden behoben, indem die Einstellung zum Vorkompilieren deaktiviert und die Veröffentlichung ordnungsgemäß ausgeführt wurde.   Veröffentlichen -> Einstellungen -> Dateiveröffentlichungsoptionen -> Vorkompilieren während der Veröffentlichung


0
2018-05-10 18:02