Der Haltepunkt wird derzeit nicht erreicht. In einer Silverlight-Anwendung wurden keine Symbole für dieses Dokument geladen

331

Ok, was ich habe:

Visual Studio 2010 RC, W7 x64, startete einen neuen Projekttyp einer Silverlight-Anwendung. Hosten der Silverlight-Anwendung in einem ASP.NET-Webanwendungsprojekt. Silverlight Version 3.0. Es wurden eine LinqToSQL-Klasse, ein WCF-Dienst, eine Winform-Tester-Anwendung (Projekt in der Lösung) und einige Klassen (auch als Projekte in der Lösung) hinzugefügt.

Gestern bekam ich plötzlich den 'Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen. ' Wenn die Meldung in der IDE angezeigt wird, sie jedoch nur die Webanwendung betrifft, kann ich das Silverlight und die Winform-App debuggen.

Was ich versucht / getan habe, um die Nachricht loszuwerden:

  • Setzen Sie die Visual Studio-Einstellungen zurück
  • Alle Dateien in jedem \ Temporären ASP.NET-Dateiordner wurden entfernt (es gibt eine für jedes 32-Bit / 64-Bit und für Framework 2.0 und 4.0).
  • Ich habe versucht, mit Visual Studio Integrated Web Server zu debuggen. Normalerweise verwende ich IIS. In der Projektausgabe der Lösung habe ich alle obj- und bin-Ordner in jedem Projektordner gelöscht
  • hat eine neue Lösung erstellt und alle Projekte zu dieser neuen Lösung hinzugefügt
  • löschte die Lösung suo Datei
  • hat eine neue ASP.NET-Webanwendung erstellt, um zu testen, ob es sich um ein VS-Installationsproblem handelt => Ich kann dieses neue Projekt / diese neue Lösung debuggen
  • Starten Sie den Computer mehrmals neu
  • Die vs.net-Installation wurde repariert
  • hat einen IISReset durchgeführt
  • Die Web-App wurde aus IIS entfernt
  • Verwenden Sie die Schaltfläche Virtuelles Verzeichnis erstellen unter Projekteigenschaften der Webanwendung, um eine neue Webanwendung in IIS zu erstellen
  • Die Framework-Version jedes Projekts wurde von 3.5 auf 4.0 geändert
  • Öffnete die Lösung auf meinem zweiten Computer => gleiches Verhalten
  • hat Microsoft Connect nach Fehlern / ähnlichen Problemen durchsucht
  • 7 Stunden verbracht.

Das passiert also zum zweiten Mal in meinem Leben. Das letzte Mal habe ich es gelöst, indem ich den Ordner "Temporäre ASP.NET-Dateien" gelöscht habe, aber diesmal brauche ich Ihre Hilfe.

Christian Muggli
quelle
Dies ist ein Duplikat. Eine Antwort auf Ihre Frage [1] finden Sie unter
SuperKael
@CalebJares haha ​​ich bin heute auf dieses Problem gestoßen. Es stellte sich heraus, dass ich im Release-Modus erstellt / ausgeführt habe, anstatt zu debuggen.
theB3RV
In meinem Fall wurde das Problem durch Deaktivieren der Option "Code optimieren" auf der Registerkarte "Erstellen" der Projekteigenschaften behoben.
Arash Motamedi

Antworten:

176

Klicken Sie mit der rechten Maustaste auf Lösung -> Eigenschaften

Suchen Sie unter Allgemeine Eigenschaften -> Startprojekt

Wählen Sie mehrere Startprojekte aus

Wählen Sie Aktion starten für die Projekte, die Sie debuggen möchten.

Hans K.
quelle
Dies funktionierte, aber ich musste es einige Male tun (VS 2010, eingebauter Webserver, Website)
MGOwen
17
Ich habe mehrere Projekte und starte sie, wie Sie sagen. Einige von ihnen sind Klassenbibliotheksprojekte. Das folgende Fehler-Popup wird angezeigt: "Ein Projekt mit einem Ausgabetyp der Klassenbibliothek kann nicht direkt gestartet werden"
Muhammad Azeem
3
Ich habe genau das gleiche Problem, das Muhammed kommentiert hat. Das Projekt, für das VS keine Symbole lädt, ist ein Bibliotheksprojekt. Interessanterweise hat eine andere Lösung, die mit demselben Bibliotheksprojekt verknüpft ist, keine Probleme beim Debuggen derselben Bibliothek!
Vivian River
1
Ich denke nicht, dass dies eine Antwort auf die Frage ist. Es werden nur mehrere Projekte gleichzeitig gestartet, anstatt nur eines, was typisch ist. Wenn es sich bei dem Projekt um eine Class Lib (DLL) handelt, wird eine Fehlermeldung angezeigt, die besagt, dass es nicht gestartet werden kann. Ob ein Projekt ein Startprojekt ist oder nicht, hat keinen Einfluss auf das Debuggen.
Greg Gum
In meinem Fall hatte ich die IIS-Site, auf der mein Projekt ausgeführt wird, so konfiguriert, dass sie auf einen anderen Ordner verweist. Irgendwie hatte dies die oben angegebene Lösungseinstellung gelöscht ...? Möglicherweise war ein Fehler in der Quellcodeverwaltung aufgetreten, aber ich konnte keine Änderung an der .sln-Datei finden. Das Zurücksetzen wie beschrieben hat das Problem behoben - ich hoffe, dass die Einsicht jemandem hilft.
Brichins
79

Ich hatte das gleiche Problem und nach dem Googeln fand ich zwei typische Lösungen dafür:

  1. Stellen Sie sicher, dass der Silverlight-Debugger im .Web-Projekt aktiviert ist. Öffnen Sie die Projekteigenschaften und wählen Sie den Silverlight-Debugger auf der Registerkarte "Web" aus.

  2. Starten Sie Visual Studio neu und löschen Sie alle Ordner bin und obj.

Aber keines davon hat bei mir funktioniert . Dann erwähnte jemand weit unten in einem Thread, um stattdessen den IE als Browser zu verwenden. Dadurch funktionierten Debugging und Haltepunkte wieder!

Bearbeiten:

Später habe ich Probleme damit, dass IE9 nicht funktioniert, weil es mit dem falschen Prozess verbunden ist. Anstatt jedes Mal manuell an den richtigen IE-Prozess anzuhängen, habe ich einen netten Trick gefunden :

  • Klicken Sie mit der rechten Maustaste auf eine der generierten Seiten im .Web-Projekt (.html oder .aspx).
  • Klicken Sie auf "Durchsuchen mit ..."
  • Festlegen des IE als Standardbrowser (wirkt sich nur auf die Auswahl des Browsers durch Visual Studio aus)

Jetzt startet Visual Studio den IE, wenn das .Web-Projekt ausgeführt wird, und hängt an den richtigen Prozess an. Das sollte es tun.

anjdreas
quelle
Danke, das hat gerade bei mir funktioniert! Das einzige Problem ist: Ich kann nicht festlegen, welcher Browser in Konfigurationsdateien ausgeführt werden soll (oder?), Daher stecke ich jetzt als IE als Standardbrowser fest. Bah.
DanTheMan
1
Um zu vermeiden, dass IE als Standardbrowser verwendet wird, habe ich die Starteinstellungen im .Web-Projekt so geändert, dass IE mit dem Pfad als Befehlszeilenparameter ausgeführt wird.
Angularsen
Du bist toll. Ich habe in den letzten Tagen mit diesem Problem zu kämpfen. Ich habe sogar Visual Studio neu installiert. Mein Standardbrowser war Firefox, ich habe Chrome ausprobiert. Es kam mir einfach nicht in den Sinn, IE auszuprobieren, was für eine Zeitverschwendung. Danke für die Information.
GaneshT
Mein vorheriger Kommentar zu den Starteinstellungen sollte bei der Behebung des Problems nicht befolgt werden, wie in meiner bearbeiteten Antwort erläutert. Verwenden Sie einfach die Standardoption "Bestimmte Seite", oder ich glaube, sie hängt möglicherweise mit dem falschen Prozess zusammen.
Angularsen
6
Ich habe das Kontrollkästchen "Silverlight" auf der Registerkarte "Web" in den .Web-Projekteinstellungen aktiviert. Jetzt ist es Arbeit. Vielen Dank!
Eugene Maksimov
54

Immer wenn dieser Fehler aufgetreten ist, stellt sich heraus, dass sich der Ordner, aus dem Visual Studio Assemblys lädt, von dem Ordner unterscheidet, aus dem die Webanwendung ausgeführt wird.

Das heißt, der Anwendungsserver führt die Anwendung aus

C:\dev\MyApplication\bin 

aber Visual Studio debuggt von

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

Hinweis - Aus verschiedenen Gründen mache ich mein Debugging mit IIS als Anwendungshost anstelle des dinky Standalone-Gizmos, das die meisten Leute verwenden. Dies könnte die Nützlichkeit meiner Antwort beeinflussen!

Update :

Für IIS ist das Anwendungsserververzeichnis (dh C:\dev\MyApplicationoben) das physische Verzeichnis für die Webanwendung konfigurierte Dies kann durch Ändern der Grundeinstellungen für die App gesteuert werden.

Für Visual Studio ist das Debugging-Verzeichnis (dh C:\dev\MyOtherApplicationoben) das Verzeichnis, in dem sich Ihre svcDateien befinden, normalerweise dasselbe Verzeichnis wie Ihre csprojProjektdatei.

Bevan
quelle
2
Vielleicht, aber Hans Ks Antwort hat bei mir funktioniert. Ich denke, es gibt je nach Situation mehrere Antworten.
Bob Wintemberg
OK, aber woher weiß ich, ob dies geschieht? Wie behebe ich das?
MGOwen
@MGOwen - Überprüfen Sie in Ihrer IIS-Konfiguration den physischen Speicherort des virtuellen Ordners, der Ihre Dienste enthält, und stellen Sie sicher, dass er mit dem Ausgabeverzeichnis von VStudio übereinstimmt.
Bevan
Ja, ich habe auch mit IIS gearbeitet, aber nach dem Absturz von VS wurde meine Lösungsdatei beschädigt, sodass ich sie erneut aus der Subversion ziehen musste. Natürlich habe ich vergessen, dass dadurch wieder der VS-Webdev-Server verwendet wurde. Duh! Vielen Dank!
Fedor Steeman
3
Wenn VS verwirrt ist, stellen Sie sicher, dass Sie zum Debug-Profil zurückkehren. Das hat mich erwischt.
Christopher Stevenson
46

Für mich stellte sich heraus, dass das Kontrollkästchen Eigenschaften-> Erstellen-> Code optimieren in der Debug-Konfiguration aktiviert war. Das Ausschalten, Wiederherstellen und Debuggen funktionierte wie gewohnt.

Samuel Jack
quelle
2
arbeitete für mich. Ich weiß nicht genau warum. Wenn Sie normalerweise "Code optimieren" aktiviert haben, können Sie {und} nicht unterbrechen.
Viggity
Hat auch für mich gearbeitet! Vielen Dank!
Bisand
1
Projekt soll Build freigeben. Es gibt immer etwas, das nicht da ist.
Ian Warburton
Das hat es für mich getan! +1
Imdad
22

Der Grund dafür ist, dass die PDBs ("PDB steht für Program Database, ein proprietäres Dateiformat (von Microsoft entwickelt) zum Speichern von Debugging-Informationen zu einem Programm) nicht aktuell sind. Dies kann einige Gründe haben ::

1- Wie Bevan sagte, debuggen Sie möglicherweise eine andere Anwendung!

2- Sie debuggen eine andere Version derselben Anwendung. Sie haben beispielsweise eine zuvor erstellte Anwendung mit der aktuellen Version des Codes zum Debuggen angehängt, ohne sie (neu) zu erstellen.

Das Reinigen oder Wiederherstellen der Lösung löst solche Probleme für mich.

Um sicherzustellen, dass das Problem nicht bei Ihnen liegt, versuchen Sie, dieselbe Anwendung mit VS 2008 zu debuggen (ich befürchte, es könnte ein Fehler in VS 2010 sein - es ist noch Beta!).

Sameh Deabes
quelle
Vielen Dank für das Heads-up. Natürlich habe ich die Lösung gereinigt / umgebaut, aber das hat nicht geholfen. Punkt 1: Wie kann ich eine andere App debuggen, wenn ich sie auf einem anderen System ausprobiert habe? Das gleiche gilt übrigens für Punkt 2. Es ist RC und überhaupt ziemlich stabil. Trotzdem danke.
Christian Casutt
Ich habe Ihren Satz "Ich habe es auf einem anderen System versucht" nicht ganz verstanden!. Release Candidate bedeutet nicht, dass es fehlerfrei ist, und Sie verlieren nichts, wenn Sie es versuchen. Wenn Sie IE8 verwenden, sagten einige Leute, es könnte die Wurzel des Problems sein. Überprüfen Sie dies: weblogs.asp.net/abdullaabdelhaq/archive/2009/06/01/…
Sameh Deabes
Ich fand dies auch: stackoverflow.com/questions/389290/… Leute schlugen dort zu matschige Lösungen vor. Schauen Sie sich dort den Kommentar zum Inline-Haltepunkt an.
Sameh Deabes
OK, ich verstehe. Mein Satz 'Ich habe es auf einem anderen System versucht' => kopierte die Lösung auf einen USB-Stick, löschte alle bin / obj-Ordner, öffnete die Lösung in VS.NET und versuchte, sie zu debuggen. Ergebnis: Gleiches Verhalten => Haltepunkte werden nicht getroffen. Danke für den anderen Link, ich werde ihn jetzt lesen.
Christian Casutt
Clean + Rebuild aktualisiert nicht immer .pdb-Dateien. Was ich getan habe - ging in den Ordner / Bin meiner Webanwendung und löschte manuell alle PDF-Dateien, die dann neu erstellt wurden. Lief wie am Schnürchen.
Dmitriy
21

Ich hatte das gleiche Problem, ich debuggte mein Projekt, und ich musste mit der rechten Maustaste auf das Projekt klicken und "Neue Debug-Instanz" auswählen. Ich musste das nur einmal machen, danach funktionierte es wie gewohnt.

Campo
quelle
Sehr eigenartig. Ich hatte das gleiche Problem und googelte es für 2 Stunden. Aus irgendeinem Grund wurde das Modul beim Debuggen nicht geladen (Debug -> Windows -> Modul). Ich habe gerade diese Optionen ausprobiert und das Boom-Debugging begann zu funktionieren. Ich habe Vs2019
Rennish Joseph
18

Dieser Fehler tritt ab und zu bei mir auf und ich kann ihn immer auf die Projekteinstellungen für die betreffende Baugruppe zurückführen. Sie müssen nicht "warten", bis Ihr Code einen Haltepunkt nicht berücksichtigt oder bis Sie den Haltepunkt festgelegt haben, um zu wissen, in welche Assemblys Symbole geladen sind.

Wenn Sie ein Projekt im Debug-Modus ausführen, wird im Ausgabefenster aufgelistet, welche Assemblys die folgenden Symbole geladen haben (möglicherweise müssen Sie das Bild auf einer neuen Registerkarte öffnen): T.

Ausgabefenster

In diesem Fall sind in BASD.Core.Data.dll KEINE Symbole geladen. Sie können dann die Projekteinstellungen für diese Assembly mit denen einer anderen Assembly vergleichen, die es geschafft hat, Symbole zu laden, um herauszufinden, warum einige Symbole laden und andere nicht.

"Für mich" jedoch "jedes" Mal, wenn dies passiert, liegt es daran, dass die Debug-Informationen nicht erstellt werden. Also öffne ich Projekteigenschaften> Erstellen> Erweitert in einem (C #) Projekt.

Für Basd.Core.Data.dll oben, dh ohne Symbole, waren die erweiterten Build-Einstellungen:

pdboff

Während für Basd.Core.Configuration.dll, dh eine Assembly, in der ich einen Haltepunkt festlegen und erreichen konnte, folgende Einstellungen vorgenommen wurden:

pdbon

Ich gebe also Debug-Informationen im letzteren Projekt aus und nicht im ersten, daher meine Fähigkeit, den Haltepunkt in Basd.Core.Configuration.dll zu erreichen

Beachten Sie auch, dass es nicht ausreicht, nur eine PDF-Datei im bin-Ordner eines Projekts für eine bestimmte DLL zu haben, da diese möglicherweise veraltet ist und daher von Visual Studio nicht als gültige Symboldatei für die DLL verwendet wird du versuchst durchzutreten.

Beachten Sie außerdem, dass durch Ändern der Build-Konfigurationen die Build-Info-Einstellungen und die Herkunft der Symbole geändert werden können.

(Mir ist klar, dass ich mich in diesem Fall im Release-Modus befinde, die Methode jedoch weiterhin gilt.)

Risma
quelle
1
Sie können auch über das Modulfenster überprüfen, welche Symbole geladen wurden. Wenn Sie zu Debug> Windows> Module gehen, werden alle Module und ihr Symbolstatus aufgelistet. Für diejenigen, die nicht geladen sind, können Sie mit der rechten Maustaste darauf klicken und auf "Symbole laden" klicken. Dies ist jedoch eher eine kurzfristige Lösung und funktioniert nur, wenn sie zunächst in der Liste angezeigt werden.
EF0
14

Gehe zu Projekteigenschaften -> Erstellen -> Erweitert ...

Wählen Sie im Abschnitt "Ausgabe" in der Dropdown-Liste "Debug-Informationen" die Option "Voll"

Rafal
quelle
Ich habe versucht, den Debugger an das Release-Profil anzuhängen, und das hat bei mir funktioniert!
Imlokesh
1
Vielen Dank! "Nur pdb" (statt voll) war genug.
Greg Little
Gott segne dich, mein Kind.
Christopher D. Emerson
13

Stellen Sie sicher, dass Sie Ihr Programm im DEBUG-Modus und nicht im RELEASE-Modus ausführen.

MrOli3000
quelle
gute Antwort. Vielen Dank
Krishan Subudhi
10

Debuggen -> An Prozess anhängen ->
Wählen Sie die folgenden Codetypen debuggen : Option -> Wählen
Sie Managed v3.5, v3.0, v2.0 oder Managed v4.5, v4.0 Geben Sie hier die Bildbeschreibung ein

Andrei Karcheuski
quelle
Dies ist das Problem, auf das ich gestoßen bin. Ich habe einige Projekte in v4.5 und andere in v2.0 (ja, ich weiß, ich weiß ...). Anscheinend ist diese Einstellung nicht projektbasiert. Als ich sie in einem v4.5-Projekt festlegte, musste ich sie zurücksetzen, als ich in ein v2.0-Projekt ging.
L_7337
9

Ich habe dieses Problem gerade gemäß Bereitstellen von Silverlight-Anwendungen behoben . (Diese Antwort ist ein Duplikat einiger anderer, aber ich werde versuchen, sie genauer zu erklären.)

Das Problem ist höchstwahrscheinlich, dass Ihre Silverlight-Anwendung beim Erstellen / Starten nicht ordnungsgemäß in Ihrer Webanwendung bereitgestellt wird. Dies ist ein Referenzierungsproblem - es ist einfach zu verstehen, aber beim ersten Auftreten nicht offensichtlich.

Genau wie jede andere Projektverweis, der referenzierten Ausgabe des Projekts sollte auf die kopiert werden Referenzierung Projekt Binärordner , um zu debuggen. Bei Klassenbibliotheken geschieht dies, wenn Sie mit der rechten Maustaste klicken und "Referenz hinzufügen ..." auswählen. Für Silverlight sollten Sie über die Projekteigenschaften eine Referenz hinzufügen.

  • Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie "Eigenschaften".
  • Wählen Sie links die Registerkarte "Silverlight-Anwendungen"
  • Klicken Sie auf die Schaltfläche "Hinzufügen ..." und wählen Sie Ihr Silverlight-Projekt aus dem Dialogfeld aus

Dadurch wird ein Verweis auf die Silverlight-Anwendung aus Ihrer Hosting-Webanwendung hinzugefügt und sichergestellt, dass die xapDatei beim Erstellen oder Bereitstellen in die Webanwendung kopiert wird. Das bedeutet, dass sich die aktuelle Silverlight-App und ihre Debug-Dateien in der zu debuggenden Anwendung befinden und Sie den Code schrittweise durchgehen können.

Kirk Broadhurst
quelle
9

Wenn Sie ein Webprojekt debuggen, stellen Sie sicher, dass das Attribut debug = "true" in Ihrer Datei web.config festgelegt wurde:

<system.web>
    <compilation debug="true"   .../>
Adam
quelle
8

Ich hatte das gleiche Problem unter Windows 7 und habe alles versucht : bereinigte DLLs, untersuchte die Liste der Module, deaktivierte "Just My Code" und so weiter.

Das Problem wurde behoben, nachdem ich Visual Studio "als Administrator" ausgeführt habe. Ehrlich. Warum konnte Microsoft mich nicht einfach warnen, dass es nicht "als Administrator" ausgeführt wird? Das würde mir einige Stunden Arbeit ersparen.

Ector
quelle
8

Für mich war das Problem, dass ich "Code optimieren" auf der Registerkarte "Erstellen" der Einstellungen meines Projekts aktiviert hatte.

Joshua Walsh
quelle
7

Hatte das gleiche Problem

Aus irgendeinem Grund wurde eine der DLLs im GAC registriert, daher hatte sie immer eine andere Version als der Code.

Nachdem ich es aus dem GAC entfernt hatte, war das Problem gelöst

Stikut
quelle
Du meinst, wie ist es zu dieser Situation gekommen? Oder wie habe ich es entfernt?
Stikut
Wie haben Sie es entfernt? Ich habe das gleiche Problem und kann es nicht beheben. Ich habe alles versucht und gehofft, dass dies meine Lösung ist.
Gaui
1
Ich hoffe, Sie könnten diese verwenden: support.microsoft.com/kb/873195 Es sei denn natürlich, Sie haben einen anderen Fehler
Stikut
6

Für diejenigen, die Visual Studio 2008 und nicht Visual Studio 2010 verwenden und diesen Fehler erhalten. Die obigen Antworten haben mir in dieser Situation nicht geholfen, daher teile ich meine Erfahrungen.

Wenn Sie eine IIS-Webanwendung in Visual Studio 2008 debuggen, indem Sie eine Verbindung zum Prozess w3wp.exe herstellen, anstatt den ASP.NET Development Server zum Debuggen zu verwenden (beginnen Sie mit dem Debuggen), ist dies möglicherweise Ihr Problem:

Visual Studio verweist möglicherweise immer noch auf eine Symboldatei (Datei, die beim Debuggen verwendet wird) aus Ihrer DLL aus einem veralteten IIS-Prozess. Diese Symboldatei wurde durch eine Neukompilierung des .NET-Quellcodes neu erstellt, aber der IIS-Prozess verweist weiterhin auf die alte Symboldatei.

Reparieren:

Beenden Sie einfach das Debuggen in Visual Studio, starten Sie die Webanwendung neu und hängen Sie sie erneut an den Prozess an. Dann sollten die Haltepunkte wieder von gelb (wenn Sie diesen Fehler sehen) zu rot wechseln.

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

Weitere Dinge zum Ausprobieren (heute neue Situation gefunden):

Führen Sie jede Kugel im Link unten EINMAL aus, aber wiederholen Sie meine Schritte unten mit jeder, die Sie versuchen.

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

1.) Beenden Sie das Debuggen (drücken Sie das rote Quadrat) in Visual Studio.
2.) Clean Solution
3.) Build Solution
4.) [BULLET-ANLEITUNG HIER EINFÜGEN]
5.) Tools> An Prozess anhängen (oder mit dem Debuggen beginnen)
6.) Starten Sie das Programm, an das Sie eine Verbindung herstellen, und führen Sie es so aus, dass Ihr Code getroffen wird

6 erklärt:

Wenn Sie eine Verbindung zu nunit.exe herstellen, öffnen Sie NUnit und führen Sie einen Test durch, damit Ihr Haltepunkt erreicht wird

Wenn Sie eine Verbindung zu w3wp.exe (IIS-Site) herstellen, öffnen Sie Ihre Site im Browser und wechseln Sie zu der Seite, die Ihren Haltepunkt erreicht

BEARBEITEN:

Heute ist mir aufgefallen, dass wenn Sie versuchen, ein Projekt zu debuggen, das nicht als Startprojekt festgelegt ist, dies angezeigt wird. Wenn Sie eine Verbindung zu Ihrem w3wp.exe-Prozess herstellen, wird dessen Debugging für das Projekt in Betracht gezogen, das als Startprojekt festgelegt ist. Klicken Sie zum Auflösen einfach mit der rechten Maustaste auf das Webanwendungsprojekt und wählen Sie "Als Startprojekt festlegen". Versuchen Sie dann erneut, eine Verbindung zu Ihrem Prozess herzustellen.

MacGyver
quelle
Fühlen Sie sich frei, die Antwort zu bewerten, wenn es hilfreich war. :-) Ich zeige dir, was Upvoting macht.
MacGyver
Ich stimme Ihrer Antwort zu, da sie hilfreich war. Ich habe es auf andere Weise versucht, aber deine hat mich rausgezogen. Danke +1.
Zaker
5

Das Szenario lautet wie folgt: Ein bestimmtes Projekt ist Ihr Startprojekt (z. B. hat die Hauptmethode). Dieses Projekt verweist auf andere Projekte in Ihrer Lösung. Haltepunkte in den anderen Projekten werden nicht getroffen.

Schnelle Lösung: Wenn Sie Ihre Lösung erstellen, suchen Sie im Ausgabepfad Erstellen (normalerweise bin \ Debug) nach dem Startprojekt. Sehen Sie sich die DLL- und PDB-Dateien für die Projekte an, auf die Sie verweisen. Stellen Sie sicher, dass das Datum der letzten Änderung das Datum ist, an dem Sie Ihre Lösung zuletzt erstellt haben. Wenn dies nicht der Fall ist, kopieren Sie sie aus dem Build-Ausgabepfad für jedes Projekt in Ihren Build-Ausgabepfad für Startprojekte. Zum Beispiel:

Projekt A hat Main. Es verweist auf Projekt B. Ihre Haltepunkte werden in Projekt B nicht erreicht. Kopieren Sie die DLL- und PDB-Datei aus dem Build-Ausgabepfad von Projekt B in den Build-Ausgabepfad von Projekt A. Führen Sie dann Ihre Lösung aus. Der Haltepunkt wird jetzt erreicht.

Jetzt müssen Sie herausfinden, warum Projekt A nicht über die DLL- und PDB-Datei von Projekt B kopiert. Die Antworten hier decken die meisten Szenarien ab. Ein Szenario, das nicht berührt wird, besteht darin, sicherzustellen, dass Ihre Projekte und Lösungen ordnungsgemäß an TFS gebunden sind. Ich hatte einige Projekte gebunden und einige nicht richtig gebunden. Das hat das Problem für mich verursacht. Nachdem ich das behoben hatte, verschwand das Problem und ich musste nicht mehr über die DLL- und PDB-Dateien kopieren.

Jeremy Ray Brown
quelle
Ihr Absatz 2 hat mein Problem behoben. Eines der Projekte in der Lösung befand sich in einem anderen bin-Verzeichnis als das bin-Verzeichnis der Start-DLL.
BobRodes
4

Die Lösung für das gleiche Problem in meinem Fall war die folgende Kombination von Schritten:

  1. Lösung -> Eigenschaften Mehrere Startprojekte auswählen Wählen Sie Aktion starten für die Projekte aus, die Sie debuggen möchten.
  2. Der Dienst wurde aus den Dienstreferenzen entfernt und die Lösung bereinigt.
  3. Erstellen Sie das Serviceprojekt neu
  4. Es wurde wieder zu den Servicereferenzen hinzugefügt
  5. Bereinigen Sie die Lösung und erstellen Sie sie neu.
DIM
quelle
4

Um dieses Problem in Web.config zu beheben, musste ich nur hinzufügen debug="true"

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

Was mir bei der Suche nach dieser Lösung geholfen hat, war das Betrachten der Modulfenster beim Debuggen und die Feststellung, dass für meine geladenen ASP.NET-DLLs Folgendes vorhanden war: Binär wurde nicht mit Debuginformationen erstellt.

Patrick vom NDepend-Team
quelle
3

Ich hatte das gleiche Problem, aber in VS2013 für eine Web-App. Für mich bestand die Antwort darin, die Build-Konfiguration für die Lösung zu aktualisieren:

  1. Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie Eigenschaften
  2. Wählen Sie die Debug-Konfiguration
  3. Wählen Sie im Untersetzer unter "Konfigurationseigenschaften" die Option "Konfiguration"
  4. Aktivieren Sie das Kontrollkästchen "Erstellen" für jedes Projekt, das Sie debuggen möchten

Sobald ich dies getan hatte, begannen alle meine Haltepunkte zu funktionieren.

Joehanna
quelle
Dies funktionierte für mich, aber ich musste auch alle meine Projekte in der Spalte Konfiguration von Release auf Debug ändern.
JoshYates1980
2

Okay, los geht's:

(In einer "Silverlight-App": Bitte überprüfen Sie zuerst, ob Silverlight in "Web" in den Eigenschaften Ihres Serverprojekts "Eigenschaften" aktiviert ist. Wenn dies nicht behoben wurde, versuchen Sie dies unten.)

Beim ersten Mal: ​​Führen Sie Folgendes aus: devenv.exe / ResetSettings und 1: Klicken Sie im oberen Menü auf Debug-Tag 2: Klicken Sie auf Optionen und Einstellungen. 3: Klicken Sie unter "Allgemein" auf "Optionen". 4: Aktivieren Sie das Kontrollkästchen. 5: Und jetzt werden alle Symbole heruntergeladen und neu konfiguriert :)

Wenn es nach dem oben genannten Vorgang erneut auftritt, löschen Sie einfach den Ordner, in dem sich die Symbole befinden:

1: Klicken Sie im oberen Menü auf Debug-Tag 2: Klicken Sie auf Optionen und Einstellungen. 3: Suchen Sie unter "Debugging" und unter "Symbole" die Schaltfläche "Leerer Symbol-Cache" und klicken Sie darauf.

2FD
quelle
2

Öffnen Sie die Webanwendungs-URL im Browser und verwenden Sie dann in der VS.Net-IDE Tools -> AttachtoProcess

dann an aspnet_wp.exe anhängen.

Der Debugger beginnt zu arbeiten

Madhusudhan
quelle
2

Ich musste alle Instanzen der DLL manuell aus der Registrierung und alle Instanzen der DLL von meinem lokalen Laufwerk deinstallieren. Deinstallierte / installierte meine App neu und jetzt erreiche ich Haltepunkte! Einen halben Tag damit verschwendet :(.

jason02
quelle
2

Ich habe versucht, die .pdbDatei in obj\debugOrdner umzubenennen und eine saubere Lösung und Neuerstellung durchgeführt.
Es wurde eine neue .pdbDatei erstellt und ich konnte Haltepunkte korrekt treffen.

Mithran
quelle
2

Ich hatte das gleiche Problem - ich habe viel Zeit verloren, als ich versuchte, das Debuggen in Visual Studio zum Laufen zu bringen.

Am Ende war es Nuget - ich hatte 3 Versionen von Newtonsoft.Json (über 7 C # -Projekte). Die Lösung würde kompiliert, war aber nicht debuggbar.

Ich habe das Problem behoben, indem ich Folgendes in der Package Manager-Konsole von Nuget ausgeführt habe:

PM> Update-Paket Newtonsoft.Json

DeveloperAlex
quelle
2

Für meine WPF-App habe ich den Anwendungsordner gelöscht, "Neueste" aus der Quellcodeverwaltung erneut ausgeführt und neu erstellt. Alle Haltepunkte funktionieren jetzt hervorragend.

Mein Stapel läuft über
quelle
1

Versuchen Sie, Silverlight Application Project als Startprojekt festzulegen: Klicken Sie mit der rechten Maustaste auf Projekt -> Als Startprojekt festlegen. Drücken Sie dann F5 und prüfen Sie, ob Sie Haltepunkte abfangen können ...

Versuchen Sie jedes Mal, Browser- / temporäre Daten in Ihrem Browser zu löschen, wenn Sie Änderungen an der Silverlight-Anwendung vornehmen

ITmeze
quelle
1

Eine weitere Anekdote, die nützlich sein könnte -

Dieses Problem trat auf, als eines meiner Projekte Dateiverweise aus einem Release-Ausgabeordner verwendete. Wenn die Build-Ergebnisse in einem Warenordner abgelegt wurden, überschrieben diese Release-DLLs die Debug-DLLs.

Die Lösung bestand darin, in der csproj-Datei sicherzustellen, dass der HintPath meiner Referenz war

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

und nicht

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

BeauJest
quelle
1

Ich hatte dieses sehr Problem , wenn bei einem Client , auf dem - für jede Anwendungslösung - sie am gemeinsamen Baugruppen zu einem „kopiert Referenzen “ -Ordner, dann sie zu der Lösung , die sowohl als „hinzugefügt Lösung Artikelund als ein „ Projekt “ in der Lösung.

Ich weiß noch nicht warum, aber einige waren debuggbar, andere nicht, obwohl in den Referenzeinstellungen für die Assemblys die richtigen vollständigen Pfade angegeben wurden.

Dieses unvorhersehbare Verhalten hat mich fast verrückt gemacht :)

Ich habe dieses Problem gelöst, indem ich alle Assemblys aus dem Ordner " References " entfernt habe, für die es Projekte mit Quellcode gab, und die Versionsinformationen für freigegebene Assemblys sehr gut verfolgt habe.

Jeroen Wiert Pluimers
quelle
1

Ich hatte ein ähnliches Problem, außer dass mein Problem albern war - ich hatte 2 Instanzen des eingebauten Webservers, die unter 2 verschiedenen Ports ausgeführt wurden UND ich hatte mein Projekt -> Eigenschaften -> Web -> "Start URL", das auf einen festen Port zeigte, aber Die Web-App wurde unter diesem Port nicht ausgeführt. Mein Browser wurde also auf die "Start-URL" umgeleitet, die sich auf 1539 bezog, aber die Code- / Debug-Instanz wurde unter Port 50803 ausgeführt.

Ich habe den eingebauten Webserver so geändert, dass er unter einem festen Port ausgeführt wird, und meine "Start-URL" so angepasst, dass auch dieser Port verwendet wird. Projekt -> Eigenschaften -> Web -> Abschnitt "Server" -> "Visual Studio Development Server verwenden" -> spezifischer Port

Chris Smith
quelle