2012-11-02 12 views
14

Mam projekt C#, który zawiera odniesienia do złożeń w formacie DLL. Mam informacje PDB dla tych plików DLL, zawartych w tym samym folderze. Kiedy naciskam klawisz F12 na element odniesienia, chcę przejść do definicji elementu. Zamiast tego daje mi metadane, których oczywiście nie chcę."Przejdź do definicji" w Visual Studio wyświetla tylko metadane dla odniesień do innych projektów

Gdy VS debuguje, przechodzi do kodu źródłowego, jeśli wykonam pojedynczy krok w tej metodzie. Ale jeśli wciśniesz F12 na tej metodzie, to nadal doprowadza mnie do metadanych.

Jest podobne pytanie, ale dotyczy to tylko odniesień do projektu, a przyjęte rozwiązanie nie ma nic wspólnego z moim problemem.

"Go To Definition" in Visual Studio only brings up the Metadata

Podsumowując:

  • Referenced projekt jest DLL
  • Mam informacje PDB
  • Single-stepping w debug-mode doprowadza mnie do kodu źródłowego
  • F12 przenosi mnie do metadanych
  • Chcę, aby F12 wprowadził mnie do kodu źródłowego jako debu g robi.

EDYCJA: Dodanie jako "Projekt" nie jest opcją, ponieważ tworzy dodatkową złożoność, ponieważ nasz plik rozwiązania odwołuje się do pięciu innych projektów, które znajdują się w oddzielnych repozytoriach kontroli źródła.

Odpowiedz

3

Wydaje się, że ten problem został rozwiązany w Visual Studio 2013. Mając informacje PDB w taki sam folder jako DLL pokazuje mi kod źródłowy, gdy używam Go To Definition. Nie mam zainstalowanego rozszerzenia Reflector.

1

Czy odnośnik DLL jest projektem w twoim rozwiązaniu? Uważam, że gdy mam kod źródłowy dla projektu i jest on w moim rozwiązaniu, Visual Studio może znacznie łatwiej łączyć się z tym kodem. (bez pokazywania meta danych).

Pamiętaj też, aby dodać odniesienie przez "Projekt" w wyskakującym okienku Odniesienia.

ogół jest to, co robię, tak czy inaczej, kiedy mam ten problem

nadzieję, że to pomaga!

PS. Pliki PDB służą zwykle do debugowania (zarówno lokalnego, jak i zdalnego) i nie są używane do odczytu kodu źródłowego w sposób, w jaki próbujesz go użyć. ("Przejdź do definicji")

+1

To nie jest opcja, przepraszam. Szukam rozwiązania, a nie pomocy zespołu. – Nuzzolilo

+2

Przykro nam to słyszeć. Powodzenia z tym, co wybierzesz. To jednak nie jest pomoc zespołowa. Wiele osób w twojej sytuacji robi to cały czas, aby rozwiązać swój problem. –

+0

Powiedziałem w pytaniu, że odpowiedź w połączonym pytaniu nie ma nic wspólnego z moim problemem. Ta odpowiedź jest w zasadzie taka sama, jaką dałeś. To jest inny problem. – Nuzzolilo

1

Jednym z rozwiązań tego problemu jest użycie .NET Reflector, VS lub VSPro. Ten program zmodyfikuje Visual Studio, aby zapewnić wymaganą funkcjonalność.

http://www.reflector.net/

Niestety, kosztuje $ 135 do $ 195, co nie jest rozwiązaniem dla każdego.

+0

jest to prawdopodobnie najłatwiejsze rozwiązanie, chociaż będzie kosztować $. Dodatek VS dla Reflectora pozwala F12 na dowolne odnośniki DLL, niezależnie od tego, czy mają kod źródłowy, czy nie. – mknopf

10

W Visual Studio rozwiń sekcję Referencje, wybierz odnośnik do powiązanego projektu (ten, który zawiera kod źródłowy, na który chcesz F12), kliknij go prawym przyciskiem myszy i wybierz "Usuń".

Następnie dodaj odwołanie do projektu klikając prawym przyciskiem myszy na Referencje i wybierając Dodaj odniesienie, na karcie Projekty (jeśli używasz VS 2012) wybierz (lub przeglądaj) projekt, do którego chcesz dodać odniesienie, a następnie kliknij przycisk OK.

Spowoduje to przebudowanie referencji, a F12 będzie można dodawać do kodu źródłowego odnośnych projektów. Będziesz musiał to zrobić ze wszystkimi projektami w swoich rozwiązaniach, które mają ten problem.

Nie wiem, dlaczego tak się dzieje, ale przynajmniej rozwiązaniem tego problemu jest dość proste

+3

-1: To pytanie dotyczy referencji, w których plik "Projekt" jest niedostępny, a obecne są tylko pliki DLL i PDB. Twoja odpowiedź wymaga plików projektu i pełnych źródeł, które nie należą do tej kategorii. – Nuzzolilo

+0

@JosephPoczekaj na pytanie, którego szukasz, http://stackoverflow.com/questions/837037/go-to-definition-in-visual-studio-only-brings-up-the-metadata. Poprosić o odpowiedź i poproś o tę błędnie sklasyfikowaną. Ta strona staje się mniej przydatna, gdy podobne (ale różne) pytania są traktowane jednakowo. – Nuzzolilo

+0

Nice one bro (Y) Pracował dla mnie –

-1

Dodaj odwołanie jako projekt zamiast .. \ bin \ Debug \ referenceFile.dll

Że rozwiązany mój problem

6

Jeśli masz zainstalowany program ReSharper, powinieneś wywołać opcje ReSharper i poszukać External Sources. Nie można określić odpowiednie opcje:

enter image description here

-1

ja również dodać odwołanie jako projekt i mój problem został rozwiązany i to działa świetnie. Właściwie utknąłem w tym momencie od bardzo dawna i ostatecznie rozwiązałem ten problem.

Referencje -> Dodaj Referencje -> Rozwiązanie -> Projekty -> Wybierz odniesienie

enter image description here

Powiązane problemy