Wir evaluieren derzeit das neue Visual Studio 2015 und haben ein seltsames Problem mit IntelliSense festgestellt. Als ich unsere Hauptlösung mit dem neuen Studio kompilierte, war der Build erfolgreich, aber es werden trotzdem 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 erfolgreich kompiliert. Der Code ist jedoch rot markiert und Fehler werden in der Fehlerliste angezeigt.
Alle 6 Fehler haben den gleichen Ursprung. Es ist ein einfacher Konstruktoraufruf. Seltsam genug, aber es gibt auch einige Vorkommen des exakt gleichen Konstruktors ohne 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 frisch installierten Windows 7 ohne Legacy-Software (kein VS13) installiert.
Ich habe bereits versucht, die Caches zu löschen, die suo-Datei zu löschen, die bin- und obj-Verzeichnisse zu löschen, die Lösung zu bereinigen und neu zu erstellen usw. Aber nichts hat funktioniert.
Kann mir jemand dieses Verhalten erklären?
Antworten:
Hatte auch dieses Problem mit einem migrierten Projekt, so dass ich auf die Microsoft.CSharp-DLL verwies. In einigen Projekten musste ich die Referenz im Projekt entfernen und erneut hinzufügen.
quelle
Ich hatte Tausende von Intellisense-Fehlern und 0 Build-Fehler. Nach dem Löschen der
.suo
Datei und dem Neustart von VS Intellisense sind Fehler verschwunden.Suo
Datei befindet sich relativ zur Quelle in:.vs\SolutionName\v14\.suo
Laut Kommentar: Vorsicht, das
*.suo
ist eine versteckte Datei.Bearbeiten: Laut Kommentaren hat VS2017 das gleiche Problem, sodass Sie eine ähnliche Lösung verwenden können: Löschen.
vs\SolutionName\v15\.suo
quelle
*.suo
In einigen Fällen können Dateien ausgeblendet sein. Sie müssen also dieView Hidden files
Option im Windows Explorer aktivieren .<%=Foo%>
Die Variable wird nicht deklariert, aber alles funktioniert zur Laufzeit.In Visual Studio 2017 ASP.Net Core Project ist ein ähnliches Problem aufgetreten. Die folgenden Schritte haben den Trick für mich getan
quelle
Ähnliches Problem wie andere, aber unterschiedliche Auflösung. Posting 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 die Zweige. Vor einigen Wochen wurde mir von den Redakteuren Fehler angezeigt (alle bezogen auf Typen, die nicht gefunden werden konnten, obwohl Referenzen gültig waren). Kompilieren hat super funktioniert. Ich habe das gleiche Problem in VS 2017 15.6 Preview (6. Januar 2018) bestätigt. Ich würde versuchen, Cache, SUO-Dateien oder bin / obj-Ordner zu löschen und keine Auswirkungen. Auf den ersten Blick scheint es zu funktionieren. Öffnen Sie Visual Studio erneut und alles würde gut aussehen. Verwenden Sie "Rebuild Solution" 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 Computern, beide mit derselben Version von Visual Studio.
Bei Betrachtung der Fehler bezüglich fehlender Typen schienen sie alle aus zwei Projekten zu stammen, auf die verwiesen wurde. Eine dieser Referenzen war ein gemeinsames Projekt, das von nahezu jedem anderen Projekt in der Lösung verwendet wurde, aber eine davon war ein kleines Projekt ohne viele Referenzen. Es ist einfach so, dass das kleine Projekt auch von meinem größeren gemeinsamen Projekt referenziert wurde. In Visual Studio habe ich das kleine Projekt entladen und neu geladen. Die Fehler gingen weg! Diese Fehler sind bei Rebuild Solution nicht aufgetreten.
Ich habe dann die Git-Zweige gewechselt und die Fehler sind alle zurückgekommen. Glücklicherweise wiederholte ich die obigen Schritte zum Entladen / Neuladen des kleinen Projekts und die Fehler verschwanden.
Jedes Mal, wenn ich die Git-Zweige wechsle, treten die Fehler wieder auf, bis ich diesen Vorgang wiederhole. Es gibt keine Änderungen zwischen den Git-Zweigen für das kleinere Projekt, das ich entlade / neu lade. Unklar, warum diese Sequenz mein Problem behebt.
quelle
Hatte auch dieses Problem (der Titel, nicht die spezifische Fehlermeldung), sowie verschnörkelte Linien im Editor. Die erste schnörkellose Zeile befindet sich unter der ersten
#include
Anweisung, die einen vorkompilierten Header benennt. Intellisense enthält den vorkompilierten Header nicht, listet ihn jedoch nicht als Fehler auf. Stattdessen werden Fehler weiter unten in der Datei aufgelistet, und zwar auf Code, der (zu Recht) auf Deklarationen im vorkompilierten Header beruht.Der Grund, warum Intellisense den vorkompilierten Header in meiner Umgebung nicht findet, ist, dass der genannte Header keine tatsächliche Datei ist. Es muss weder in einer anderen von mir verwendeten VC- oder gcc-Version noch im Compiler 2015 enthalten sein, 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.
In dem unwahrscheinlichen Fall, dass dies das hier gemeldete Problem ist, ist die Lösung einfach: Erstellen Sie eine kleine Datei mit dem Vorwandnamen des vorkompilierten Headers, wie in den
#include
Anweisungen angegeben, und lassen Sie diese Datei den tatsächlichen Namen des vorkompilierten Headers enthalten.Wenn Sie sich fragen ... warum diese Unterscheidung zwischen dem vorkompilierten Headernamen in der Anweisung '#include' und dem tatsächlichen Dateinamen des vorkompilierten Headers? Gerade weil es garantiert, dass vorkompilierte Header-Einstellungen korrekt konfiguriert sind. Wo immer ein vorkompilierter Header "#included" ist, gibt es keine Datei, die eingeschlossen werden könnte. Entweder wird eine tatsächlich vorkompilierte (binäre) Version des eigentlichen Headers gelesen oder die Kompilierung schlägt fehl. Ein Nachteil ist natürlich, dass es die Leute verwirrt , die den Code lesen, nicht nur Intellisense.
quelle
Visual Studio 2017 Ich habe die Datei ".suo" vom Speicherort .vs \ SolutionName \ v15.suo gelöscht und dann Visual Studio neu gestartet. Das hat bei mir funktioniert.
quelle
Heute hatte ich ein ähnliches Problem mit MSVC ++ 2015. Ich gab fast auf und beschloss, ohne IDE-Hinweise fortzufahren, aber plötzlich bemerkte ich, dass stdafx.h des Projekts, mit dem ich Probleme hatte, keine Standardbibliotheksheader enthält. Ich habe spekuliert, dass die Aufnahme aller im Projekt verwendeten Standard-Header in stdafx.h die Kompilierungsgeschwindigkeit erhöhen könnte, dies hat jedoch auch Intellisense-Fehler behoben.
quelle
Ich hatte mehrere
stdfax.h
in zusätzlichen Include-Verzeichnissen. Stellen Sie sicher, dass das, wasstdafx.h
Sie beabsichtigt haben, zuerst auf Ihrem Weg ist.quelle
Ich hatte ein ähnliches Problem mit verschiedenen Visual Studio-Versionen.
Das Löschen des Ordners .suo oder .vs hat mir nicht geholfen.
Die Lösung für mich war, dass ich die Erweiterung StopOnFirstBuildError aktiv hatte. Nach dem Deaktivieren von "Stop Build on First Error" im Build-Menü und nachdem die Lösung vollständig erstellt wurde, wurden die von Intellisense angezeigten Fehler behoben.
quelle
Ich habe die Intellisearch-Fehler nur beim Veröffentlichen einer Website gesehen. (ASP / C # -Site, VS 2017). Sie haben die Veröffentlichung abgebrochen. Die Site lief lokal gut.
Beheben Sie die Fehler, indem Sie die Einstellung zum Vorkompilieren deaktivieren, und es wurde einwandfrei veröffentlicht. Veröffentlichen -> Einstellungen -> Optionen zum Veröffentlichen von Dateien -> Vorkompilieren während der Veröffentlichung
quelle
In Visual Studio 2019 besteht das Problem darin, Zweige mit Git zu ändern, wenn NuGet-Pakete im Projekt installiert sind. Was ich getan habe, um das zu lösen:
quelle