Ich arbeite in einem Webprojekt in Visual Studio 2008. Wenn ich F12 drücke (oder mit der rechten Maustaste klicke und zur Definition gehe), wechselt Visual Studio konsistent zur Metadatendatei, anstatt zur Quelle zu wechseln.
Ein paar Punkte:
- Der gesamte Quellcode ist C #, es gibt kein VB.Net
- Alle Projekte sind in der gleichen Lösung
- Alles ist eine Projektreferenz im Gegensatz zu einer Dateireferenz (geprüft und doppelt geprüft)
- Ich habe den Clean / Rebuild Solution-Ansatz ausprobiert (sogar bis zum Löschen des Temp-Verzeichnisses, des temporären ASP.NET-Dateiverzeichnisses usw.).
Hat jemand anderes dieses Verhalten gesehen und / oder weiß, wie man es behebt?
visual-studio
pfunk
quelle
quelle
Antworten:
Nun, ein anderer Entwickler hat die Antwort gefunden. Das spezifische Projekt, mit dem wir ein Problem hatten, wurde ursprünglich als Dateireferenz hinzugefügt, dann entfernt und als Projektreferenz hinzugefügt. Visual Studio hat jedoch beide in der csproj-Datei für die Website gespeichert, was das Problem verursacht hat. Er ging hinein und bearbeitete die csproj-Datei manuell, um den Dateiverweis auf das Problemprojekt zu entfernen, und alles ist jetzt behoben
quelle
Dies geschieht, wenn Sie keine Referenz als Projekt hinzufügen, sondern auf der Registerkarte Durchsuchen im Dialogfeld Referenz hinzufügen auf eine DLL oder Exe verweisen. Wenn Sie über die Registerkarte Projekte eine Referenz hinzufügen, sollten Sie direkt zum Quellcode wechseln, wenn Sie Zur Definition wechseln auswählen.
Wenn Sie jedoch ReSharper installieren , gelangen Sie zum Quellcode, auch wenn Sie Ihren Verweis auf der Registerkarte Durchsuchen zu einer DLL / Exe hinzugefügt haben.
quelle
Sieht so aus, als müsste es auch in Resharper eingerichtet werden. Mein Visual Studio navigiert nicht zum .NET Framework-Quellcode, bis ich ihn in Resharper aktiviere.
quelle
1. Schließen Sie Ihre Lösung.
2. Löschen Sie die versteckte
<name of the solution>
.suo-Datei in dem Ordner, in dem die<name of the solution>
.sln-Datei Ihrer Lösung vorhanden ist.3. Öffnen Sie Ihre Lösung.
4. Erstellen Sie Ihre Lösung neu.
quelle
Für diejenigen, die VS 2017 verwenden (ich bin derzeit in Version 15.3.4), sind hier die einfachen Schritte:
.vs\[your solution name]\v15
.suo
DateiDas hat es für mich behoben: F12 hat die eigentliche Quelldatei geöffnet, nicht die Version "aus Metadaten".
quelle
Visual Studio hat häufig das Problem, eher zu Metadaten als zu Ihrem Projekt zu wechseln, wenn Sie den Ort verschieben, an dem Sie das Projekt erstellen, dh Sie haben möglicherweise mehrere Versionen, um die Dinge zu testen.
Löschen Sie einfach die Referenz und fügen Sie sie sofort wieder hinzu. Alles wird aussortiert.
quelle
Die markierte Lösung funktioniert nicht immer. Sie müssen sicherstellen, dass die referenzierte Projekt-GUID in den Projektdateien die richtige GUID für das Projekt ist, auf das Sie verweisen möchten. Mit Visual Studio können sie unter bestimmten Umständen nicht mehr synchron sein. Sie können die Projekt-GUID mit einem Texteditor aus der Projektdatei abrufen. Wenn also Projekt A Referenzprojekt B. Projekt B.csproj im Texteditor öffnen, kopieren Sie die Projekt-GUID aus dem Tag. Öffnen Sie dann das Projekt A.csproj im Texteditor und stellen Sie sicher, dass Sie die richtige GUID verwenden. Suchen Sie in diesem Fall nach dem Projektnamen "B". Es sollte bei sein. Ersetzen Sie die GUID im Tag durch die richtige. Speichern und neu laden. Stellen Sie natürlich auch sicher, dass dateibasierte Verweise auf Ihre Projekte entfernt werden. Sie möchten nur Projektreferenzen.
quelle
Ich habe alle VS-Instanzen getötet, die SUO gelöscht, sln gestartet und es hat bei mir funktioniert ...
quelle
Entfernen Sie die Referenz-DLL, Erstellen Sie (es werden Fehler angezeigt), fügen Sie die Referenz hinzu (Sie haben sie entfernt) und erstellen Sie sie erneut ... F12 für Ihre Funktion sollte dann funktionieren (für mich funktioniert).
quelle
Ich habe in diesem Beitrag herausgefunden, wie ich mein Problem lösen kann. Vielleicht funktioniert es auch für einige von Ihnen.
Ich habe diese Schritte befolgt:
(Ich glaube, dass entweder Schritt 3 oder 4 die Intellisense-Datenbankdatei neu generiert, wenn sie fehlt.)
Intellisense, "Gehe zur Definition" und "Alle Referenzen finden" sollte wieder funktionieren.
quelle
In meinem Fall (mit Visual Studio Professional 2015), als ich den XAML-Designer deaktiviert hatte, funktionierte der F12 nicht mehr. Sobald ich die Änderungen rückgängig gemacht und Visual Studio neu gestartet habe, hat der F12 wieder funktioniert.
Überprüfte das Muster mehrmals, um es zu bestätigen, und postete es dann. Hoffe es hilft jemandem.
quelle
Symptom:
Visual Studio 2010 Ultimate konnte bei Verwendung der Funktionen "Gehe zu Definition" oder "Gehe zu Deklaration" oder "Alle Verweise suchen" wiederholt keine Verweise auf Funktionen, #definiert, enthält usw. finden - seltsamerweise funktionierte Intellisense.
Fix:
Die SDF-Datei wird automatisch neu erstellt, indem die Include-Dateien in Ihrer Lösung analysiert werden
quelle
Für mich hat die GUID-Lösung nicht funktioniert und ich konnte meine .ncb-Datei nicht finden. (Oder vielleicht bin ich faul und habe nicht genau genug ausgesehen, aber das ist nicht wichtig.) Der Wiederaufbau und der Neustart von Visual Studio haben auch nicht geholfen.
Ich habe Visual Studio geschlossen und die DLLs und PDFs gelöscht, auf die oben in der Metadatendatei verwiesen wird, mit der mein Intellisense immer wieder verknüpft hat. In meinem Fall bedeutete dies, dass ich meine DLL und ihre PDF-Datei aus Utilities / bin / Release gelöscht habe. (Utilities ist der Name des DLL-Projekts, mit dem ich Probleme hatte.) Dann habe ich Visual Studio neu gestartet und die DLL neu erstellt, dann die gesamte Lösung. Keine Probleme mehr!
quelle
Habe gerade eine andere Ursache gefunden. Ich habe mein Webprojekt auf 4.0 aktualisiert, aber die Klassenbibliotheken bei 2.0 belassen. Zu diesem Zeitpunkt wurden alle Klassenbibliotheken in meiner Lösung als Dateireferenzen aus meinem Webprojekt behandelt. Könnte jemand anderem helfen ...
quelle
Ich hatte das gleiche Problem und einer der Kollegen gab mir die folgende Lösung und es funktionierte! Wenn keines der oben genannten Verfahren für Sie funktioniert,
quelle
Ich habe alle vorgeschlagenen Schritte ausgeführt, aber nichts wurde geändert.
Klicken Sie schließlich mit der rechten Maustaste und fügen Sie das Referenzmenü auf der Registerkarte Projekt hinzu
Problem sortiert. Hoffe das wird jemandem helfen.
quelle
Die folgenden Schritte haben bei mir funktioniert.
<Reference Include="">
Löschen Sie die Zeile
quelle
Nachdem Sie zuerst DLL-Dateien aus Visual Studio gelöscht und manuell aus dem Projektmappen-Explorer -> Website -> Hinzufügen -> Referenz wieder hinzugefügt und 32-Bit-Anwendungen in IIS aktiviert haben, wurde dies für mich behoben.
quelle
# 1
Aktivieren Sie "Ansicht - Objektbrowser". Wenn Sie mehr als eine Assembly mit demselben Namen sehen, wird dieser Fehler angezeigt.
Für uns war es ein Fehler in VS 2019:
Wenn Sie ASP.NET "Razor-Helfer" im
App_Code
Ordner haben, interpretiert Visual Studio 2019 dies als eine andere Assembly mit demselben Namen, wodurch die tatsächliche Assembly ausgeblendet wird.Es gibt keine Lösung dafür, außer diese Helfer in Teilansichten oder HTML-Helfer umzuschreiben (Sie müssen dies trotzdem tun, wenn Sie eine Migration auf .NET Core planen).
Sehen Sie sich diese Problemumgehung auf der MS-Website an und stimmen Sie den Fehler dort ab, damit MS ihn behebt
https://developercommunity.visualstudio.com/solutions/1008795/view.html (bitte positiv bewerten)
# 2
Ein weiterer Grund, warum dieselbe Assembly zweimal in den Objektbrowser geladen werden kann, besteht darin, dass Sie ein Unit-Test-Projekt haben, das den iis-express-Prozess startet und ihn nie ordnungsgemäß beendet.
quelle
quelle
In meinem Fall hatte ich mich erst kürzlich geändert
auf "true" in der .csproj-Datei meiner Site (um Kompilierungsfehler in meinen Razor-Ansichtsdateien zu finden: http://forums.asp.net/t/1909113.aspx?How+to+have+Visual+Studio+2012+returned + kompiliere + Fehler + auf + Rasiermesser + Syntax + Fehler + in + asp + net + web + Seite + 2 + ), und als ich dann baute, bekam ich Fehler aus meinem Verzeichnis / obj / Debug / meiner Site. Wenn Sie in einer dieser Dateien (die veraltet waren) mit der rechten Maustaste klicken und "Zur Definition gehen" auswählen, erhalte ich die Version [Metadaten].
Für mich hat keine der Lösungen hier funktioniert, da ich nicht von einer Datei ausgegangen bin, die sich tatsächlich in meinem Projekt befand. Wenn das gesamte Verzeichnis / obj / Debug / gelöscht wurde, sind die Fehler verschwunden, und aus jeder normalen Datei kann ich Go To Definition korrekt verwenden.
quelle
Ich bin gerade auf VS 2013 auf dieses Problem gestoßen. Etwas, das ich nicht isolieren konnte (tat?), War das Ändern der GUID in der CSPROJ-Datei. Da die CSPROJ-Dateien in SVN eingecheckt sind, konnte ich die GUID auf meinem lokalen Entwickler nicht einfach ändern. Stattdessen habe ich die lokale Änderung jedes Mal, wenn dies geschah, durch SVN zurückgesetzt.
Zuerst musste ich das sich ändernde GUID-Problem lösen.
Extrahieren Sie den Wert aus der ursprünglichen CSPROJ-Datei.
{B1234567-5123-4AAE-FE43-8465767788ED}
Öffnen Sie die SLN-Datei über einen Texteditor, NICHT VS.
Suchen Sie die Projektreferenz in der Lösung.
Project ("{FAE12345-3210-1357-B3EB-00CA4F396F7C}") = "Some.Project", ".... \ Assemblys \ Some.Project \ Some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
Die erste aufgeführte GUID ist die Lösungs-GUID. Für jedes Projekt, auf das in Ihrer SLN verwiesen wird, sollte dieser Wert beim ersten Argument wiederholt werden. Die GUID nach .csproj ist diejenige, die Sie durch die makellose GUID ersetzen möchten.
Dies sollte das erste Problem lösen, aber die Landung "Zur Definition gehen" in Metadaten ist nicht gelöst. In unserer SLN-Datei befindet sich ein Masterprojekt (unsere Website), daher sollte sein Eintrag in der SLN-Datei einen ProjectSection-Eintrag mit mehreren GUID-Werten enthalten. Hier ist ein Beispiel:
Beachten Sie, dass die fehlende GUID in dieser Sammlung die aus meinem ursprünglichen Projekt ist.
quelle
Ich hatte einen Zirkelverweis zwischen den beiden beteiligten Projekten (was ein Nein-Nein ist). Musste meinen Code ein wenig umstrukturieren, um ihn zu lösen, da beide Projekte wirklich voneinander abhängig waren. Das Entfernen einer der Referenzen löste das Intellisense-Problem. Es war logisch fehlerhaft und ich hätte es ohne diesen Fehler wahrscheinlich nicht bemerkt!
quelle
Dieser hat für mich funktioniert:
quelle
Dies kann passieren, wenn Sie versuchen, in einem entladenen Projekt (nicht verfügbar) zur Definition zu springen. Klicken Sie mit der rechten Maustaste auf das entladene Projekt und wählen Sie "Projekt neu laden".
quelle
Die beste Vermutung ist, dass Sie keine Debug-Informationen haben. Möglicherweise haben Sie mehrere Kopien Ihrer Assembly auf der Festplatte, und die PDF-Datei ist nicht enthalten.
Suchen Sie in Ihren Projekten nach Ihren Baugruppennamen, löschen Sie sie alle und erstellen Sie sie neu.
quelle