Die C # -Desktopanwendung in der Express Edition funktionierte und funktionierte 5 Sekunden später nicht mehr.
Ich habe folgendes versucht:
- Stellen Sie sicher, dass die Debug-Konfiguration, das Debug-Flag und die vollständigen Debug-Informationen für alle Assemblys festgelegt sind.
- Löschen Sie alle bin- und obj-Ordner sowie alle mit dem Projekt verbundenen DLLs von meinem gesamten Computer.
- Erstellen Sie Projekte neu, die das Problem verursachen, von Grund auf neu.
- Starten Sie neu.
Ich habe zwei WinForms-Projekte in der Lösung. Einer von ihnen lädt die Debug-Informationen, einer nicht. Beide beziehen sich auf die Assembly, für die ich in der Projektdatei genau die gleichen Debug-Informationen abrufen möchte. Irgendwelche Ideen?
Ich möchte hier vor allem für mich selbst hinzufügen, dass Symbole erst geladen werden, wenn die Baugruppe geladen wird, und die Baugruppe erst geladen wird, wenn sie benötigt wird. Wenn sich der Haltepunkt in einer Bibliothek befindet, die nur in einer Funktion in Ihrer Hauptbaugruppe verwendet wird, werden die Symbole erst geladen (und der Haltepunkt wird als nicht getroffen angezeigt), bis diese Funktion aufgerufen wird.
quelle
<DebugSymbols>true</DebugSymbols>
in VS2015 nicht hatte, manuell hinzugefügt habe und es gut funktioniert hat.Antworten:
Starten Sie das Debuggen, sobald Sie an einem Haltepunkt angekommen sind oder es verwendet
Debug > Break All
habenDebug > Windows > Modules
. Sie sehen eine Liste aller Assemblys, die in den Prozess geladen werden. Suchen Sie diejenige, für die Sie Debug-Informationen erhalten möchten. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Symbol Load Information. Sie erhalten ein Dialogfeld, in dem alle Verzeichnisse aufgelistet sind, in denen nach der PDF-Datei für die Assembly gesucht wurde. Überprüfen Sie diese Liste anhand des tatsächlichen PDF-Speicherorts. Stellen Sie sicher, dass kein alter gefunden wird.In normalen Projekten sollten die Assembly und ihre PDF-Datei immer von der IDE in denselben Ordner wie Ihre EXE-Datei kopiert worden sein. Der Ordner bin \ Debug Ihres Projekts. Stellen Sie sicher, dass Sie eine aus dem GAC entfernen, wenn Sie damit gespielt haben.
quelle
Versuchen Sie zunächst, Ihr Projekt neu zu erstellen, indem Sie mit der rechten Maustaste auf das Projekt klicken.
Wenn das nicht funktioniert hat, überprüfen Sie Folgendes:
(Schritt 6 generiert die PDF-Dateien. Dies sind die Debugging-Symbole.)
quelle
Properties > Build > Optimize code
das nicht markiert war .Nur etwas Einfaches zu versuchen - vielleicht haben Sie es bereits versucht. Klicken Sie mit der rechten Maustaste auf die Lösung im Lösungs-Explorer, klicken Sie auf "Lösung bereinigen". Dadurch werden alle kompilierten und temporären Dateien gelöscht, die einer Lösung zugeordnet sind .
Führen Sie eine Neuerstellung der Lösung durch und versuchen Sie erneut, das Debugging durchzuführen.
Ich hatte auch Probleme mit Haltepunkten für mehrere Projekte in einer Lösung - einige als x86 kompiliert, andere als x64.
quelle
Deaktivieren Sie die Option "Nur mein Code" in den Einstellungen "Debuggen / Allgemein".
quelle
Crossposting dieses Fixes von Hans K , das ich im ähnlichen Thread gefunden habe >> HIER << :
quelle
Die ausgewählte Antwort veranlasste mich, mein Problem zu beheben. Aber ich muss noch ein paar Dinge tun:
Auch wenn in der Dropdown-Liste "Debug" ausgewählt ist:
Und im Projekt Eigenschaften> Erstellen:
Das Visual Studio hat keine Symbole in ein bestimmtes Projekt geladen. In dieser Dropdown-Liste habe ich "Configuration Manager" ausgewählt und festgestellt, dass die Einstellungen für mein Webprojekt falsch waren:
Dann habe ich das auf "Debug" gesetzt und es begann die
.pdb
Datei zu generieren . ABER ich muss den PDB und die DLL manuell kopieren und in den Ordner legen, nach dem VS gesucht hat (hier hat mir die ausgewählte Antwort geholfen):quelle
release
Modus. Vielen Dank !!Debug
>Windows
>Modules
zu sehen, welche Module geladen wurden, habe ich mich in die richtige Richtung bewegt.In meinem Fall schien IIS Express eine andere DLL als die temporären ASP.NET-Dateien zu laden.
Die Lösung?
C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
quelle
Ich konnte den Fehler beheben, indem ich einfach die Option "An Prozess anhängen" auf "Automatisch den Typ des zu debuggenden Codes bestimmen" setzte, wie im angehängten Screenshot gezeigt.
Befolgen Sie einfach die folgenden Schritte:
quelle
Manchmal, obwohl es Ihnen diesen Fehler gibt, wird der Fehler
breakpoint
immer noch getroffen. Ignorieren Sie den Fehler einfach. Dies geschieht ziemlich oft in dieViews
von einMVC web app
.quelle
Überprüfen Sie, ob Ihre .pbd-Datei in Ihrem bin / Debug-Ordner fehlt. Wenn dies der Fall ist, gehen Sie zu "Eigenschaften" Ihres Projekts, wählen Sie "Erstellen" und dann unten "Erweitert". Wählen Sie im neuen Fenster unter "Debug-Informationen" die Option "Vollständig". Dies war mein Problem und löste es für mich.
quelle
In meinem Fall wurde "Code optimieren" in meinen Projekteigenschaften überprüft. Dies führte dazu, dass VS meine Assembly als "nicht mein Code" ansah und wiederum keine Symbole dafür lud.
Die Lösung bestand darin, dies zu deaktivieren.
quelle
Überprüfen Sie einfach, ob sich Ihre Lösung im Release-Modus befindet.
quelle
Versuchen Sie, Visual Studio als Administrator in Windows auszuführen.
quelle
In meinem Fall versuche ich, im Relase-Modus zu debuggen. Sobald ich es in den Debug-Modus ändere. Es funktioniert
quelle
Sie müssen "Debug-Informationen generieren" in den Compiler-Einstellungen aktivieren
quelle
Debug-
->
Optionen->
Allgemein->
Deaktivieren Sie das Kontrollkästchen für "Enable Just My Code
"Das hat bei mir funktioniert.
quelle
Wir haben die Ursache unseres Problems gefunden. Dieser Code verwendete das Attribut "CodeBehind" in der Page-Direktive der ASPX-Datei anstelle des Attributs "CodeFile" (ASP.NET 2.0 und höher). Nach Tagen der Verzweiflung löste eine einfache Suche und Ersetzung das Problem.
quelle
Die Option "Debuggen starten, Debuggen + Windows + Module" ist in Microsoft Visual Studio Express 2013 Edition nicht vorhanden.
Das Deaktivieren von "Verwalteten Kompatibilitätsmodus verwenden" in den Tools-Optionen Debugging behebt dieses Problem .
quelle
Überprüfen Sie Ihre
Solution Configuration
Dropdown-Liste. Stellen Sie sicherDebug
, dass Sie nicht auswählenRelease
.quelle
Ich habe alles versucht, was oben erwähnt wurde, aber nichts hat funktioniert. [Lösung reinigen und nach PDB-Dateien usw. suchen]
Selbst die Veröffentlichung derselben Lösung hat das Problem nicht behoben.
Dann ging ich zurück zu dem, was ich normalerweise mache, um es zu lösen (täusche dieses hartnäckige Visual Studio)
Ich habe lediglich den Code absichtlich geändert und die Lösung veröffentlicht. Dann habe ich die Änderung rückgängig gemacht und erneut veröffentlicht.
Voila [PDB-Dateien befreien böse Geister] .. Keine kluge Lösung, aber das hat funktioniert ..: - |
quelle
Nur Webanwendungen (IIS Express):
quelle
Keine dieser Antworten löste mein Problem. Ich habe eine andere Sache ausprobiert, basierend auf der Tatsache, dass das Projekt mit dem Stopp in Wirklichkeit nicht das geladene Projekt war. Ich fand, als Hans Passant schrieb, dass die DLL, in der ich den Debugger stoppen möchte, und die zugehörigen PDF-Dateien in der Nähe der EXE-Datei kopiert wurden. Diese Dateien hatten ein älteres Datum, daher dachte ich, dass sie zur Laufzeit nicht aktualisiert wurden. Ich habe sie manuell gelöscht, Visual Studio ein weiteres Paar erstellt UND dieses neue Paar in die Nähe der EXE-Datei gestellt. Jetzt funktioniert der Breakpoin!
Möglicherweise kann Visual Studio vorhandene Dateien (.dll und .pdb) in der Nähe der EXE-Datei nicht kopieren und ERSETZEN, da dort weitere vorhanden sind. Wenn ich also manuell löschte, konnte VS in der Nähe von .exe eine neue erstellen.
Ich denke, dass andere Änderungen (Überprüfungen usw. - von den anderen Antworten) etwas ausgelöst haben und Visual Studio die DLL und die PDF-Datei aus dem Projektordner in den Ordner in der Nähe der Exe kopiert und ersetzt hat. Das war also eine Lösung.
Ich denke, dass die Hauptursache des Problems darin besteht, dass Visual Studio zur Laufzeit eine andere Datei verwendet, nicht die Datei aus dem Projekt, mit dem Stopp.
Vielleicht diese Antwort, um jemandem zu helfen!
quelle
Dinge, die überprüft werden müssen, um klar zu sein: Stellen Sie sicher, dass die Konfiguration auf 'Debug' und nicht auf 'Release' eingestellt ist. Sie können das Startprojekt im Release-Modus debuggen, jedoch nicht in einer referenzierten Klassenbibliothek.
quelle
Projekteigenschaften (wählen Sie dann Ihre Build-Konfiguration aus)> Registerkarte Build> Erweitert ...> Debug-Informationen (Dropdown)
Auf 'all' oder 'only pdb' setzen und dann neu erstellen
quelle
Anstatt all diese Dinge einfach zu tun
Schließen und erneut öffnen
Die Lösung behebt das Problem
quelle
Ich hatte ein ähnliches Problem und habe Folgendes getan: Debug => Optionen => Allgemein => Entfernen Sie das Häkchen für "Nur meinen Code aktivieren". Dies hat bei mir funktioniert.
quelle
Es dauerte eine Weile, bis ich andere Optionen ausprobiert hatte, und aus irgendeinem seltsamen Grund funktionierte das Debuggen nicht mehr.
quelle
quelle
Überprüfen Sie, ob die folgenden beiden Einstellungen in Visual Studio gleich sind:
Klicken Sie mit der rechten Maustaste auf Testprojekt, gehen Sie zu Eigenschaften, Registerkarte Erstellen und sehen Sie sich das Plattformziel an
Meine sind alle auf "Beliebige CPU" eingestellt, also x64
Gehen Sie in der Hauptmenüleiste zu Test, Testeinstellungen, Standardprozessorarchitektur
Meins war auf X86 eingestellt
Ändern Sie dies auf X64 , um es mit der obigen Einstellung , funktionierte das integrierte Visual Studio-Menü "Debug Test (s)" und traf Haltepunkte, die zuvor mit der Meldung "Der Haltepunkt wird derzeit nicht erreicht" ignoriert wurden. Für dieses Dokument wurden keine Symbole geladen. “
Aktualisieren:
Für Visual Studio 2019 wurden die Menüs etwas verschoben:
quelle
Ich weiß, dass ich Jahre zu spät bin, aber ich dachte, ich hätte etwas falsch gemacht und die obigen Schritte befolgt, dann wurde mir klar, dass ich die Lösungskonfiguration versehentlich auf 'Release' gesetzt hatte :)
quelle