Visual Studio wechselt nicht mehr zur Methodendefinition

5

Ich vermisse es, F12 drücken zu können und zur Definition einer Methode zu gelangen. Da meine Lösung aus vier separaten Projekten besteht und ich F12 drücke und die Methode (oder Eigenschaft oder was auch immer) sich in einem anderen Projekt befindet, wird der völlig wertlose Objektbrowser geöffnet. Gibt es eine Einstellung, die ich korrigieren kann, damit sie nur zur richtigen Datei und Methode wechselt? Oder bin ich so ziemlich SOL ...

Vielen Dank

Jason
quelle
Diese Frage ist hier nicht unbeantwortet, aber ich vermute, dass Sie auf Stack Overflow mehr Visual Studio-Benutzer finden.
CarlF
@ carlf Ich dachte darüber nach, aber ich dachte, es würde hier umgeleitet werden, weil es nicht "programmierbezogen" ist
Jason

Antworten:

2

Das funktioniert immer noch bei mir. Möglicherweise haben Sie ein Addon / eine Erweiterung installiert, die F12 neu zugeordnet hat.

Um es zurückzusetzen, Tools > Customizeklicken Sie unten im Dialogfeld auf die Schaltfläche Keyboard.... Geben Sie Edit.GoToDefinitionim daraufhin Show commands containing:angezeigten Dialogfeld das Textfeld ein.

Stellen Sie Use new shortcut in:auf Global.
Drücken Sie F12in das Press shortcut keys:Textfeld.
Klicken Sie auf Assign.

Sie können dann die Dialogfelder verlassen und die Funktionalität sollte wiederhergestellt sein.

Eidylon
quelle
1
Funktioniert nicht: \ Die Taste F12 funktioniert, wenn Sie nach einer Definition in demselben Projekt suchen, aber wenn Sie nach einer Definition in einem anderen Projekt suchen (natürlich immer noch in derselben Lösung), wird nur die geöffnet Objektbrowser.
Jason
Hmm, ich habe es gerade hier ausprobiert. Ich habe eine Lösung, die ungefähr ein Dutzend verschiedene Projekte beinhaltet. Ich ging zu einer Datei in einem Projekt, die auf eine Klasse in einem anderen Projekt verweist, hob sie hervor, klickte F12und führte mich zur Klassendatei. Es kann davon abhängen, ob Sie beim Hinzufügen des Verweises auf Projekt A in Projekt B Projekt A auf der ProjectsRegisterkarte oder der AssembliesRegisterkarte des Add ReferenceDialogfelds ausgewählt haben.
Eidylon
In meinen Referenzen wird auf die Projekte für beide anderen Projekte verwiesen: \
Jason
2

Ich fand heraus, dass, wenn das Referenzprojekt auf ein anderes Framework abzielt (dh meine Anwendung ist 4.0, aber mein Modell in 3.5), F12 zum Objektbrowser wechselt.

Wenn die Referenz auf dasselbe Framework abzielt, funktioniert F12. . .

ZedWonk
quelle
interessant. Ich werde das überprüfen. danke für die antwort .. das klappt bei mir bis heute nicht!
Jason
Positiv bewertet, da dies genau das Problem war, das ich hatte. VS2008 importierte eine .NET 3.5-Klassenbibliothek, aber die Website wurde von Grund auf als .NET 4-Website erstellt. Die Klassenbibliotheken wurden auf v4 und F12 / go to definition
geändert
1

Ich stellte fest, dass ein kürzlich installiertes Programm zur Steigerung der Codeproduktivität (Telerik JustCode) den F12-Hotkey entführt hatte. F12 (Global) war noch mit GoTo Definition verbunden, aber anscheinend hatte F12 (Bearbeiten) Vorrang. Bei der Installation von JustCode ist ein Fehler aufgetreten. Daher funktionierte die Installation nicht und F12 funktionierte im Endeffekt nicht mehr.

Da ich JustCode nicht wirklich verwendet habe, habe ich es deinstalliert. Danach begann F12 das zu tun, was es tun sollte.

Troy
quelle
Danke für den Tipp. Ich werde es ausprobieren, wenn ich nach Hause komme!
Jason
0

Sie haben wahrscheinlich eine Binärdatei (dll) als Referenz hinzugefügt. Versuchen Sie Folgendes im
Projektmappen- Explorer: (1) Erweitern Sie unter Ihrem Clientprojekt Verweise.
(2) Suchen und entfernen Sie den Verweis auf die Klasse, die Ihre Methode / Eigenschaft enthält.
(3
) Klicken Sie unter demselben Clientprojekt auf Neue Verweise hinzufügen. (4) Klicken Sie auf Die Registerkarte "Projekte" im Dialogfeld "Verweis hinzufügen"
Ich gehe davon aus, dass Ihre Lösung beide Projekte enthält.

Arun
quelle
habe es ausprobiert ... geht noch in den objektbrowser. wtf
Jason
hmmm ... sorry zu hören ... nur zum Teufel, können Sie die gleichen Schritte wiederholen, aber dieses Mal speichern Sie Ihr Client-Projekt nach dem Entfernen der Referenz (Schritt 2) und starten Sie Visual Studio und neu (schließen und öffnen) Fahren Sie mit den Schritten 3 und 4 fort. (Wenn Sie versuchen, zwischen 3 und 4 zu kompilieren, werden viele Fehler angezeigt, die jedoch nur vorübergehend sind.)
Arun
1
Wenn Sie mit der rechten Maustaste auf die Eigenschaften und Methoden klicken und "Gehe zu Definition" auswählen, wird aus Neugier das gleiche Verhalten wie bei "F12" angezeigt?
Arun
@Arun Ja, ich bekomme das gleiche Verhalten, wenn ich mit der rechten Maustaste klicke und gehe zur Definition und F12. Es ist suuuuper frustrierend
Jason
Normalerweise enthält die Projektdatei beim Hinzufügen einer Projektreferenz (anstelle einer DLL-Referenz) zu einem konsumierenden Projekt die Information, dass das referenzierte Modul ein Projekt ist, das in der Projektmappe verfügbar ist, und nicht die Binärdatei. Versuchen Sie, das konsumierende Projekt in Editor (oder einem beliebigen Texteditor) zu öffnen und nach dem Modul zu suchen, auf das verwiesen wird. Wenn Sie das unter einem "Reference" -Tag sehen (wie in "& lt; Reference Include = yourDll & gt;"), liegt Ihr Problem vor. Entfernen Sie es einfach und fügen Sie Folgendes hinzu: under
Arun
0

Ich hatte ein ähnliches Problem. Entfernen und Hinzufügen der Referenz löste es für mich. Weitere Informationen finden Sie unter Stapelüberlauf-Frage

Shamanth Gowdra Shankaramurthy
quelle
0

Etwas anders als die Frage des OP, aber meine Fähigkeit, zur Definition zu gehen, war plötzlich nicht mehr vorhanden. Ich benutze Resharper, also dachte ich, dass das Problem vielleicht da ist.

Am Ende musste ich nur Visual Studio schließen und erneut öffnen.

Hoffe es hilft jemandem. . .

Matt Cashatt
quelle