Punkt przerwania nie zostanie obecnie trafiony. W aplikacji Silverlight nie załadowano żadnych symboli dla tego dokumentu

331

Ok, co mam:

Visual Studio 2010 RC, W7 x64, uruchomił nowy typ aplikacji Silverlight. Hostowanie aplikacji Silverlight w projekcie aplikacji sieci Web ASP.NET. Wersja Silverlight 3.0. Dodano klasę LinqToSQL, usługę WCF, aplikację Winform Tester (projekt w rozwiązaniu) i kilka klas (również jako projekty w rozwiązaniu).

Wczoraj nagle otrzymałem „Punkt przerwania nie zostanie obecnie trafiony. Dla tego dokumentu nie załadowano żadnych symboli. ” wiadomość pojawiająca się w IDE, ale wpływa ona tylko na aplikację internetową, mogę debugować aplikację Silverlight i aplikację Winform.

Co próbowałem / zrobiłem, aby pozbyć się wiadomości:

  • Zresetuj ustawienia programu Visual Studio
  • usunięto wszystkie pliki w każdym \ Temporary Folderze plików ASP.NET (jeden jest dla każdego 32-bitowego / 64-bitowego i dla Framework 2.0 i 4.0)
  • próbowałem debugować za pomocą zintegrowanego serwera sieci Web Visual Studio - zwykle używam IIS, w danych wyjściowych projektu rozwiązania usunąłem wszystkie foldery obj i bin w każdym folderze projektu
  • utworzył nowe rozwiązanie i dodał wszystkie projekty do tego nowego rozwiązania
  • usunął plik suo rozwiązania
  • utworzył nową aplikację sieci Web ASP.NET w celu przetestowania, czy jest to problem z instalacją VS => Mogę debugować ten nowy projekt / rozwiązanie
  • kilkakrotnie ponownie uruchomiłem maszynę
  • naprawił instalację vs.net
  • zrobił IISReset
  • usunął aplikację sieci Web z IIS
  • użył przycisku Utwórz katalog wirtualny w obszarze Właściwości projektu aplikacji sieci Web, aby utworzyć nową aplikację sieci Web w usługach IIS
  • zmieniono wersję ramową każdego projektu z 3.5 na 4.0
  • Otworzyłem rozwiązanie na moim drugim komputerze => to samo zachowanie
  • przeszukano Microsoft Connect w poszukiwaniu błędów / podobnych problemów
  • SPĘDZONE 7 GODZIN.

Tak dzieje się drugi raz w życiu. ostatnim razem rozwiązałem go, usuwając folder plików tymczasowych ASP.NET, ale tym razem potrzebuję twojej pomocy.

Christian Muggli
źródło
To jest duplikat. Spójrz na [Ta strona] [1], aby uzyskać odpowiedź na twoje pytanie [1]: stackoverflow.com/questions/2155930/...
SuperKael 30.04.2013
@CalebJares haha ​​wpadłem dziś na ten problem. okazuje się, że budowałem / działałem w trybie zwolnienia zamiast debugowania.
theB3RV
W moim przypadku wyłączenie opcji Optymalizuj kod na karcie Kompilacja właściwości projektu rozwiązało problem.
Arash Motamedi

Odpowiedzi:

176

Kliknij prawym przyciskiem myszy rozwiązanie -> Właściwości

Zajrzyj do Wspólnych właściwości -> Projekt startowy

Wybierz wiele projektów startowych

wybierz Rozpocznij akcję dotyczącą projektów, które chcesz debugować.

Hans K
źródło
To zadziałało, ale musiałem to zrobić kilka razy (VS 2010, wbudowany serwer WWW, strona internetowa)
MGOwen
17
mam wiele projektów i uruchamiam je jak mówisz .. niektóre z nich to projekty bibliotek klas .. pojawia się komunikat o błędzie: „Projekt z typem wyjściowym biblioteki klas nie może zostać uruchomiony bezpośrednio”
Muhammad Azeem,
3
Mam dokładnie ten sam problem, o którym skomentował Muhammed. Projekt, dla którego VS nie ładuje symboli, jest projektem bibliotecznym. Co ciekawe, inne rozwiązanie, które prowadzi do tego samego projektu biblioteki, nie ma problemu z debugowaniem tej samej biblioteki!
Vivian River,
1
Nie sądzę, że to odpowiedź na pytanie. Po prostu ustawia rozpoczęcie wielu projektów w tym samym czasie, zamiast tylko jednego, który jest typowy. Jeśli projekt ma klasę Lib (dll), wyświetli się komunikat o błędzie informujący, że nie można go uruchomić. To, czy projekt jest projektem początkowym, czy nie, nie ma wpływu na debugowanie.
Greg Gum
W moim przypadku ponownie skonfigurowałem witrynę IIS, w której działa mój projekt, tak aby wskazywała inny folder. Jakoś to wyczyściło wskazane powyżej ustawienie rozwiązania ...? Być może wystąpił błąd kontroli źródła, ale nie mogłem znaleźć zmiany w pliku .sln. Zresztą zresetowanie tego zgodnie z opisem rozwiązało problem - mam nadzieję, że wgląd pomoże komuś.
brichins
79

Miałem ten sam problem i po googlowaniu znalazłem dwa typowe rozwiązania:

  1. Upewnij się, że debuger Silverlight jest aktywowany w projekcie .Web. Otwórz właściwości projektu i wybierz debuger Silverlight na karcie „Internet”.

  2. Uruchom ponownie program Visual Studio i usuń wszystkie foldery bin i obj.

Ale żaden z nich nie działał dla mnie . Następnie ktoś wspomniał o wątku, aby zamiast tego spróbować użyć IE jako przeglądarki. Dzięki temu debugowanie i punkty przerwania znów działają!

Edytować:

Później zmagałem się z niedziałaniem IE9, ponieważ wiąże się on z niewłaściwym procesem. Zamiast ręcznego dołączania do prawidłowego procesu IE za każdym razem znalazłem fajną sztuczkę :

  • Kliknij prawym przyciskiem myszy jedną z wygenerowanych stron w projekcie .Web (.html lub .aspx)
  • Kliknij „Przeglądaj za pomocą ...”
  • Ustaw IE jako domyślną przeglądarkę (wpłynie tylko na wybór przeglądarki Visual Studio)

Teraz Visual Studio uruchomi IE podczas uruchamiania projektu .Web i dołącza do prawidłowego procesu. Że należy to zrobić.

anjdreas
źródło
Dzięki, to właśnie dla mnie zadziałało! Jedyny problem to: nie mogę ustawić przeglądarki, która ma być uruchomiona w żadnym pliku konfiguracyjnym (czy mogę?), Więc teraz utknąłem jako IE jako domyślna przeglądarka. Bah.
DanTheMan
1
Aby uniknąć używania IE jako domyślnej przeglądarki, zmieniłem ustawienia uruchamiania w projekcie .Web, aby uruchomić IE ze ścieżką jako parametrami wiersza poleceń.
angularsen
Jesteś niesamowity. Od kilku dni zmagam się z tym problemem. Ponownie zainstalowałem studio graficzne. Moją domyślną przeglądarką był Firefox, próbowałem Chrome. Po prostu nie przyszło mi do głowy, aby spróbować IE, co za strata czasu. Dzięki za informację.
GaneshT
Mój poprzedni komentarz na temat ustawień uruchamiania nie powinien być przestrzegany podczas rozwiązywania problemu, jak wyjaśniono w mojej zredagowanej odpowiedzi. Po prostu użyj domyślnej „opcji konkretnej strony”, w przeciwnym razie uważam, że może to być związane z niewłaściwym procesem.
angularsen
6
Zaznaczam pole wyboru „Silverlight” na karcie „Internet” w ustawieniach projektu .Web. Teraz to praca. Dzięki!
Eugene Maksimov
54

Ilekroć pojawiał się ten konkretny błąd, okazało się, że folder, z którego Visual Studio ładuje zestawy, jest inny niż folder, z którego działa aplikacja internetowa.

Oznacza to, że serwer aplikacji uruchamia aplikację

C:\dev\MyApplication\bin 

ale program Visual Studio debuguje

C:\dev\MyOtherApplication\bin (or something along those lines, anyway).

Uwaga - z różnych powodów debuguję za pomocą usług IIS jako hosta aplikacji zamiast fałszywego samodzielnego gadżetu, z którego korzysta większość osób. Może to wpłynąć na użyteczność mojej odpowiedzi!

Aktualizacja :

W przypadku IIS katalog serwera aplikacji (tj. C:\dev\MyApplicationPowyżej) jest fizycznym katalogiem skonfigurowanym dla aplikacji sieci web - można to kontrolować, zmieniając podstawowe ustawienia aplikacji.

W przypadku programu Visual Studio katalog debugowania (tj. C:\dev\MyOtherApplicationPowyżej) to katalog, w którym znajdują się svcpliki, zwykle ten sam katalog co csprojplik projektu.

Bevan
źródło
2
Może, ale odpowiedź Hansa K. zadziałała dla mnie. Myślę, że istnieje wiele odpowiedzi w zależności od sytuacji.
Bob Wintemberg
OK, ale skąd mam wiedzieć, czy tak się dzieje? Jak to naprawić?
MGOwen
@MGOwen - w konfiguracji IIS sprawdź fizyczną lokalizację folderu wirtualnego zawierającego twoje usługi i upewnij się, że pasuje do katalogu wyjściowego z VStudio.
Bevan,
Tak, pracowałem również z IIS, ale po awarii VS mój plik rozwiązania został uszkodzony, więc musiałem ponownie wyciągnąć go z subversion. Oczywiście zapomniałem, że w ten sposób powróciłem do korzystania z serwera VS webdev. Hه! Dzięki!
Fedor Steeman
3
Kiedy VS się pomyli, wróć do profilu Debugowania. To mnie dopadło.
Christopher Stevenson
46

Problemem okazało się to, że pole wyboru Właściwości-> Buduj-> Optymalizuj kod zostało włączone w konfiguracji debugowania. Wyłączone, przebudowane i debugowanie działało normalnie.

Samuel Jack
źródło
2
pracował dla mnie. Naprawdę nie wiem dlaczego, zwykle włączenie „optymalizacji kodu” po prostu nie pozwoli ci się włamać {i}.
wiggity
Pracowałem też dla mnie! Dzięki!
bisand
1
Projekt ustawiony na wydanie kompilacji. Zawsze czegoś nie ma.
Ian Warburton
To mi zrobiło! +1
Imdad
22

Powodem, dla którego napotkałeś, jest to, że PDB („PDB oznacza bazę danych programu, zastrzeżony format pliku (opracowany przez Microsoft) do przechowywania informacji debugowania o programie) nie są aktualne, może to być z kilku powodów :

1- Jak powiedział Bevan, być może debugujesz inną aplikację!

2- Debugujesz inną wersję tej samej aplikacji. Na przykład dołączyłeś wcześniej zbudowaną aplikację z bieżącą wersją kodu do debugowania bez (ponownego) budowania go.

Czyszczenie lub przebudowa rozwiązania rozwiązuje dla mnie takie problemy.

Aby upewnić się, że problem nie jest twój, spróbuj debugować tę samą aplikację w VS 2008 (obawiam się, że może to być błąd w VS 2010 - wciąż jest wersja beta!).

Sameh Deabes
źródło
dzięki za heads-upy oczywiście oczyściłem / przebudowałem rozwiązanie, ale to nie pomogło. Punkt 1: Jak mogę debugować inną aplikację, jeśli wypróbowałem ją w innym systemie? Nawiasem mówiąc, podobnie jak w punkcie 2., jest RC i całkiem stabilny. W każdym razie dzięki.
Christian Casutt
Nie do końca zrozumiałem twoje zdanie „wypróbowałem to na innym systemie” !. Wersja Release Candidate nie oznacza, że ​​jest wolna od błędów i nic nie stracisz, jeśli spróbujesz. Jeśli używasz IE8, niektórzy twierdzą, że może to być przyczyną problemu, sprawdź to: weblogs.asp.net/abdullaabdelhaq/archive/2009/06/01/…
Sameh Deabes 20'10
Znalazłem to również: stackoverflow.com/questions/389290/... ludzie sugerowali tam zbyt papkowate rozwiązania. Spójrz tam na wbudowany komentarz punktu przerwania.
Sameh Deabes
dobra, widzę. moje zdanie „próbowałem na innym systemie” => skopiowałem rozwiązanie na pendrivie, usunąłem wszystkie foldery bin / obj, otworzyłem rozwiązanie w VS.NET i próbowałem go debugować. wynik: to samo zachowanie => punkty przerwania nie zostają trafione .. dzięki za drugi link, przeczytam go teraz.
Christian Casutt
Clean + Rebuild nie zawsze aktualizuje pliki .pdb. Co zrobiłem - poszedłem do folderu / Bin mojej aplikacji internetowej i ręcznie usunąłem wszystkie pliki .pdb, a następnie odbudowałem. Działa jak urok.
Dmitriy
21

Miałem ten sam problem, debugowałem mój projekt i musiałem kliknąć projekt prawym przyciskiem myszy i wybrać „nową instancję debugowania”. Musiałem to zrobić tylko raz, a potem działało to normalnie.

Campo
źródło
Bardzo dziwny. Miałem ten sam problem i przeglądałem go przez 2 godziny. Z jakiegoś powodu moduł nie ładował się podczas debugowania (Debugowanie -> Windows -> Moduł). Właśnie wypróbowałem te opcje i zaczęło działać debugowanie boomu. Korzystałem z Vs2019
Rennish Joseph
18

Ten błąd pojawia się od czasu do czasu dla mnie i zawsze mogę prześledzić go z powrotem do ustawień projektu dla danego zespołu. Nie musisz „czekać”, aż twój kod nie przestrzega punktu przerwania lub dopóki nie ustawisz punktu przerwania, aby wiedzieć, które zestawy mają załadowane symbole.

Kiedy uruchomisz projekt w trybie debugowania, w oknie Wyjście wyświetli listę, które zestawy mają załadowane symbole, jak poniżej (może być konieczne otwarcie obrazu w nowej karcie): T

Okno wyjściowe

Tak więc w tym przypadku plik BASD.Core.Data.dll NIE ma załadowanych symboli. Możesz więc porównać ustawienia projektu dla tego zestawu z ustawieniami innego zestawu, któremu udało się załadować symbole, aby dowiedzieć się, dlaczego niektóre robią, a niektóre nie ładują symboli.

„Dla mnie” jednak „za każdym razem” dzieje się tak, ponieważ informacje debugowania nie są tworzone. Więc otwieram Właściwości projektu> Kompilacja> Zaawansowane w projekcie (C #).

Tak więc dla Basd.Core.Data.dll powyżej tj. Bez symboli zaawansowane ustawienia kompilacji to:

pdboff

Natomiast w przypadku Basd.Core.Configuration.dll, czyli zestawu, w którym mogłem ustawić i trafić punkt przerwania, ustawienia były następujące:

pdbon

Więc wypisuję informacje debugowania w drugim projekcie, a nie w pierwszym, stąd moja zdolność do osiągnięcia punktu krytycznego w Basd.Core.Configuration.dll

Zauważ również, że nie wystarczy po prostu mieć plik .pdb w folderze bin projektu dla danego pliku .dll, ponieważ może on być nieaktualny i dlatego nie zostanie wybrany przez Visual Studio jako prawidłowy plik symboli dla pliku .dll próbujesz przejść.

Należy również pamiętać, że zmiana konfiguracji kompilacji może zmienić ustawienia informacji o kompilacji oraz miejsce, z którego pobierane są symbole.

(Zdaję sobie sprawę, że w tym przypadku jestem w trybie zwolnienia, ale metoda nadal obowiązuje)

rism
źródło
1
Możesz również sprawdzić, które symbole zostały załadowane w oknie Moduły. Jeśli przejdziesz do Debugowanie> Windows> Moduły, wyświetli się lista wszystkich modułów i ich status symboli. W przypadku tych, które nie zostały załadowane, możesz kliknąć je prawym przyciskiem myszy i kliknąć „Załaduj symbole”. Jest to raczej poprawka krótkoterminowa i działa tylko wtedy, gdy na początku pojawią się na liście.
EF0,
14

Idź do Właściwości projektu -> Kompilacja -> Zaawansowane ...

W sekcji „Wyjście” wybierz opcję „pełna” w menu rozwijanym Informacje debugowania

Rafał
źródło
Próbowałem dołączyć debuger do profilu wydania i to zadziałało dla mnie!
imlokesh
1
Dzięki! Wystarczyło „tylko pdb” (zamiast pełnego).
Greg Little
Niech Bóg błogosławi moje dziecko.
Christopher D. Emerson
13

Upewnij się, że program działa w trybie DEBUG, a nie w trybie RELEASE.

MrOli3000
źródło
świetna odpowiedź. Dzięki
Krishan Subudhi,
10

Debuguj -> Dołącz do procesu ->
wybierz Debuguj te typy kodów: opcja ->
wybierz Zarządzane v3.5, v3.0, v2.0 lub Zarządzane v4.5, v4.0 wprowadź opis zdjęcia tutaj

Andrei Karcheuski
źródło
To jest problem, na który wpadłem. Mam niektóre projekty w wersji 4.5 i inne w wersji 2.0 (tak, wiem, wiem ...). Najwyraźniej to ustawienie nie jest oparte na projektach, więc kiedy ustawiłem je w projekcie v4.5, musiałem je ustawić z powrotem, gdy wszedłem do projektu v2.0.
L_7337
9

Właśnie rozwiązałem ten problem według Wdrażanie aplikacji Silverlight . (Ta odpowiedź jest duplikatem niektórych innych, ale postaram się ją dokładniej wyjaśnić).

Problem najprawdopodobniej polega na tym, że aplikacja Silverlight nie jest poprawnie wdrażana w aplikacji internetowej podczas kompilacji / uruchamiania. Jest to problem z odniesieniami - jest prosty do zrozumienia, ale nie jest oczywisty za pierwszym razem.

Podobnie jak w przypadku innych odniesień do projektu, dane wyjściowe projektu, do którego należy odwołanie , należy skopiować do folderu bin projektu odniesienia w celu debugowania. W przypadku bibliotek klas dzieje się to po kliknięciu prawym przyciskiem myszy i wybraniu opcji „Dodaj odniesienie ...”. W przypadku Silverlight należy dodać odwołanie za pośrednictwem Właściwości projektu.

  • Kliknij projekt prawym przyciskiem myszy i wybierz „Właściwości”
  • Wybierz kartę „Aplikacje Silverlight” po lewej stronie
  • Naciśnij przycisk „Dodaj ...” i wybierz projekt Silverlight z okna dialogowego

Dodaje to odwołanie do aplikacji Silverlight z aplikacji hostingowej i zapewnia, że xapplik zostanie skopiowany do aplikacji internetowej podczas kompilacji lub wdrażania. Oznacza to, że bieżąca aplikacja Silverlight i jej pliki debugowania znajdują się w debugowanej aplikacji, a Ty będziesz mógł przejść przez kod.

Kirk Broadhurst
źródło
9

Jeśli debugujesz projekt WWW, upewnij się, że atrybut debug = "true" został ustawiony w pliku web.config:

<system.web>
    <compilation debug="true"   .../>
Adam
źródło
8

Miałem ten sam problem na Windows 7 i próbowałem wszystkiego : wyczyściłem biblioteki DLL, sprawdziłem listę modułów, wyłączyłem „Just My Code” i tak dalej.

Problem został rozwiązany po uruchomieniu programu Visual Studio „jako administrator”. Szczerze. Dlaczego Microsoft nie może mnie po prostu ostrzec, że nie działa jako „administrator”? Zaoszczędzi mi to kilka godzin pracy.

Ector
źródło
8

Dla mnie problem polegał na tym, że miałem włączoną opcję „Optymalizuj kod” w zakładce Kompilacja w ustawieniach mojego projektu.

Joshua Walsh
źródło
7

Miałem ten sam problem

Z jakiegoś powodu jedna z bibliotek DLL została zarejestrowana w GAC, dlatego zawsze miała inną wersję niż kod.

Po usunięciu go z GAC problem został rozwiązany

Stikut
źródło
Masz na myśli, jak doszło do tej sytuacji? Lub jak to usunąłem?
Stikut
Jak to usunąłeś. Mam ten sam problem i nie mogę go naprawić. Próbowałem wszystkiego, więc miałem nadzieję, że to moje rozwiązanie.
Gaui
1
Mam nadzieję, że możesz użyć tego: support.microsoft.com/kb/873195 Chyba że oczywiście masz inny błąd
Stikut
6

Dla tych, którzy używają Visual Studio 2008, a nie Visual Studio 2010 i otrzymują ten błąd. Powyższe odpowiedzi nie pomogły mi w tej sytuacji, dlatego dzielę się swoim doświadczeniem.

Jeśli debugujesz aplikację sieci Web IIS w programie Visual Studio 2008, dołączając się do procesu w3wp.exe zamiast używać serwera programistycznego ASP.NET do debugowania (zacznij od debugowania), może to być twój problem:

Program Visual Studio może nadal odwoływać się do pliku symboli (pliku używanego podczas debugowania) z biblioteki DLL z nieaktualnego procesu IIS. Ten plik symboli został odtworzony przez rekompilację kodu źródłowego .NET, ale proces IIS nadal odwołuje się do starego pliku symboli.

Naprawić:

Po prostu przestań debugować w Visual Studio, uruchom ponownie aplikację internetową i ponownie dołącz do procesu. Następnie punkty przerwania powinny zmienić kolor z żółtego (gdy zobaczysz ten błąd) na czerwony.

========================

Więcej rzeczy do wypróbowania (dzisiaj znalazłem nową sytuację):

Zrób każdą kulę w linku poniżej JEDEN RAZ, ale powtórz moje kroki poniżej z każdym, którego spróbujesz.

http://carnotaurus.philipcarney.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same

1.) Zatrzymaj debugowanie (naciśnij czerwoną ikonę kwadratu) w Visual Studio
2.) Wyczyść rozwiązanie
3.) Kompiluj rozwiązanie
4.) [INSERT BULLET INSTRUKCJA TUTAJ]
5.) Narzędzia> Dołącz do procesu (lub zacznij od debugowania)
6.) Uruchom program, do którego dołączasz, i uruchom go w taki sposób, aby kod został trafiony

6 wyjaśnił:

Jeśli dołączasz do nunit.exe, otwórz NUnit i uruchom test, aby twój punkt przerwania został trafiony

Jeśli dołączasz do w3wp.exe (witryna IIS), otwórz swoją witrynę w przeglądarce i przejdź do strony, która uderzy w punkt przerwania

EDYTOWAĆ:

Dzisiaj zauważyłem, że jeśli spróbujesz debugować projekt, który nie jest ustawiony jako projekt początkowy, pokaże to. Po dołączeniu do procesu w3wp.exe myśli o debugowaniu projektu, który jest ustawiony jako projekt początkowy. Aby rozwiązać problem, kliknij prawym przyciskiem myszy projekt aplikacji internetowej i wybierz „Ustaw jako projekt początkowy”. Następnie spróbuj ponownie dołączyć do procesu.

MacGyver
źródło
Zachęcamy do głosowania za odpowiedzią, jeśli była pomocna. :-) Pokażę ci, co robi upvoting.
MacGyver,
Głosuję za odpowiedzią, ponieważ była pomocna. Próbowałem innych sposobów, ale twój był tym, który mnie wyciągnął. Dzięki +1.
Zaker
5

Scenariusz jest następujący: konkretny projekt to projekt początkowy (np. Ma metodę Main). Ten projekt odwołuje się do innych projektów w twoim rozwiązaniu. Punkty przerwania w innych projektach nie są trafiane.

Szybkie rozwiązanie: kiedy budujesz swoje rozwiązanie, poszukaj ścieżki startowej kompilacji (zwykle bin \ Debug). Spójrz na pliki DLL i PDB dla projektów, do których się odwołujesz. Upewnij się, że ich ostatnia modyfikowana data jest datą ostatniej budowy rozwiązania. Jeśli nie są, skopiuj je ze ścieżki wyjściowej kompilacji każdego projektu do projektów początkowych. Na przykład:

Projekt A ma Główny. Odwołuje się do projektu B. Twoje punkty przerwania nie są trafiane w projekcie B. Skopiuj plik DLL i plik PDB ze ścieżki wyjściowej kompilacji projektu B do ścieżki wyjściowej kompilacji projektu A. Następnie uruchom swoje rozwiązanie. Punkt przerwania zostanie teraz trafiony.

Teraz musisz dowiedzieć się, dlaczego Projekt A nie kopiuje plików DLL i PDB Projektu B. Odpowiedzi tutaj obejmują większość scenariuszy. Jednym ze scenariuszy, których nie dotknięto, jest prawidłowe powiązanie projektów i rozwiązania z TFS. Niektóre projekty zostały powiązane, a niektóre niepoprawnie. To spowodowało problem. Gdy to naprawiłem, problem zniknął i nie musiałem już kopiować plików DLL i PDB.

Jeremy Ray Brown
źródło
Twój akapit 2 naprawił mój problem. Jeden z projektów w rozwiązaniu znajdował się w innym katalogu bin niż katalog bin biblioteki DLL uruchamiania.
BobRodes,
4

Rozwiązaniami tego samego problemu w moim przypadku była następująca kombinacja kroków:

  1. Rozwiązanie -> Właściwości Wybierz wiele projektów startowych wybierz Uruchom akcję na projektach, które chcesz debugować.
  2. Usunięto usługę z odniesień do usług i posprzątaj rozwiązanie.
  3. Odbuduj projekt usługi
  4. Dodano go z powrotem do referencji serwisowych
  5. Oczyść rozwiązanie i odbuduj je.
CIEMNY
źródło
4

Aby naprawić ten problem w Web.config, po prostu musiałem dodać debug="true"

  <system.web>
    <compilation targetFramework="4.0" debug="true">

Pomogłem mi znaleźć to rozwiązanie, kiedy patrzyłem na okna modułów podczas debugowania i zobaczyłem, że dla załadowanych bibliotek DLL ASP.NET miałem: Binary nie został zbudowany z informacjami debugowania.

Patrick z zespołu NDepend
źródło
3

Miałem ten sam problem, ale w VS2013 dla aplikacji sieci Web. Dla mnie odpowiedzią była aktualizacja konfiguracji kompilacji dla rozwiązania: -

  1. Kliknij rozwiązanie prawym przyciskiem myszy i wybierz Właściwości
  2. Wybierz konfigurację debugowania
  3. Wybierz „Konfiguracja” w „Właściwościach konfiguracji” w tyczce
  4. Zaznacz pole „Kompiluj” dla każdego projektu, który chcesz debugować

Gdy to zrobiłem, wszystkie moje punkty przerwania zaczęły działać.

Joehanna
źródło
To działało dla mnie, ale musiałem również zmienić wszystkie moje projekty z wersji na debugowanie w kolumnie Konfiguracja.
JoshYates1980,
2

Okej - zaczynamy:

(W „aplikacji silverlight”: najpierw sprawdź, czy silverlight jest zaznaczony w „sieci” we właściwościach projektu serwera - jeśli to nie rozwiązało, spróbuj tego poniżej)

Za pierwszym razem: uruchom najpierw: devenv.exe / ResetSettings i 1: w górnym menu kliknij znacznik debugowania 2: kliknij opcje i ustawienia 3: W „debugowaniu” i pod „ogólnym” znajdź „włącz krok po kroku źródła .NET Framework” 4: Zaznacz pole. 5: A teraz wszystkie symbole zostaną pobrane i ponownie skonfigurowane :)

Jeśli to powtórzy się po powyższym, po prostu wyczyść folder, w którym znajdują się symbole:

1: W górnym menu kliknij tag debugowania 2: kliknij opcje i ustawienia 3: W „debugowaniu” i pod „symbolami” znajdź przycisk „opróżnij pamięć podręczną symboli” i kliknij go.

2FD
źródło
2

Otwórz adres URL aplikacji sieci Web z przeglądarki, a następnie w VS.Net IDE użyj Narzędzia -> AttachtoProcess

następnie dołącz do aspnet_wp.exe.

Debuger zacznie działać

madhusudhan
źródło
2

Musiałem ręcznie odinstalować wszystkie wystąpienia .dll z rejestru i wszystkie wystąpienia .dll z mojego dysku lokalnego. Odinstalowałem / ponownie zainstalowałem moją aplikację i teraz uderzam w punkty przerwania! Zmarnowałem pół dnia, robiąc to :(.

jason02
źródło
2

Próbowałem zmienić nazwę .pdbpliku w obj\debugfolderze, zrobiłem czyste rozwiązanie i przebudowałem.
Utworzył nowy .pdbplik i byłem w stanie poprawnie trafić punkty przerwania.

Mithran
źródło
2

Miałem ten sam problem - straciłem dużo czasu na próby debugowania w Visual Studio.

Ostatecznie stał się Nuget - miałem 3 wersje Newtonsoft.Json (w 7 projektach C #). Rozwiązanie kompiluje się, ale nie można go debugować.

Rozwiązałem ten problem, uruchamiając następujące polecenie w konsoli Menedżera pakietów Nugeta:

PM> Pakiet aktualizacji Newtonsoft.Json

DeveloperAlex
źródło
2

W przypadku mojej aplikacji WPF usunąłem folder aplikacji, ponownie „Pobierz najnowsze” z kontroli źródła i ponownie go przebudowałem. Wszystkie punkty przerwania działają teraz świetnie.

Mój stos się przepełnia
źródło
1

Spróbuj ustawić projekt aplikacji Silverlight jako projekt startowy: kliknij prawym przyciskiem myszy projekt -> 'Ustaw jako projekt startowy. Następnie naciśnij klawisz F5 i sprawdź, czy możesz złapać punkty przerwania ...

Spróbuj usunąć dane przeglądania / temp w przeglądarce za każdym razem, gdy wprowadzasz zmiany w aplikacji silverlight

ITmeze
źródło
1

Kolejna anegdota, która może być przydatna

Napotkałem ten problem, gdy jeden z moich projektów używał odniesień do plików z folderu wyjściowego wydania. Gdy wyniki kompilacji zostały umieszczone w folderze Towary, te biblioteki dll wydania zastąpiły dll debugowania.

Rozwiązaniem było upewnienie się, że w pliku csproj moja referencja to HintPath

<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>

i nie

<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>

BeauJest
źródło
1

Miałem ten problem, gdy na kliencie, gdzie - dla każdego rozwiązania aplikacji - skopiowali większość udostępnionych zestawów do folderu „ References ”, a następnie dodali je do rozwiązania jako „ przedmioty Rozwiązaniei jako „ projektu ” w roztworze.

Nie wiem jeszcze dlaczego, ale niektóre z nich były debugowalne, inne nie, mimo że w ustawieniach Odniesień dla zestawów podano prawidłowe pełne ścieżki.

To nieprzewidywalne zachowanie doprowadziło mnie do szału :)

Rozwiązałem ten problem, usuwając wszystkie zestawy z folderu „ References ”, dla których były projekty z kodem źródłowym, i bardzo dobrze śledząc informacje o wersji dla udostępnionych zestawów.

Jeroen Wiert Pluimers
źródło
1

Miałem podobny problem, z tym że mój problem był głupi - miałem 2 instancje wbudowanego serwera WWW działającego pod 2 różnymi portami ORAZ mój projekt -> właściwości -> web -> „Start URL” wskazywał na stały port, ale aplikacja internetowa nie działała pod tym portem. Tak więc moja przeglądarka została przekierowana na „Początkowy adres URL”, który odwoływał się do 1539, ale instancja kodu / debugowania działała pod portem 50803.

Zmieniłem wbudowany serwer internetowy, aby działał pod stałym portem i dostosowałem swój „Start URL”, aby również z niego korzystać. project -> właściwości -> web -> sekcja „Serwery” -> „Użyj programu Visual Studio Development Server” -> określony port

Chris Smith
źródło