Haltepunkte werden nicht erreicht

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Haltepunkte werden nicht erreicht

    Hallo,
    ich habe momentan folgendes Problem. Unsere Software gibt es schon sehr lange (8Jahre+). Die Anfänge davon wurden in VB6 entwickelt und die neueren Komponenten alle in vb.net. Nun wurden noch nicht alle Komponenten auf .NET umgestellt.
    Daher wird die Anwendung selbst über VB6 erstellt und wir haben ein Interface über welches wir dann auf .NET zugriefen.
    Dort wird die .NET Komponente die Alle Schnittstellen enthält per CreateObject angelegt.
    Dieses Interface läuft als eigener Prozess (Dies ist so gewollt da es sonst Probleme mit der sqlite-Datenbank gibt).

    Nun wollte ich unsere .NET Komponente Debuggen.
    Also .NET-Komponente Kompilieren. Interface Kompilieren. Programm Kompilieren.
    Programm starten - Aus dem Programm .NET Komponente aufrufen (Dabei wird der Prozess für das Interface erstellt) - Mit Visual Studio an den Prozess für das Interface anhängen (Weil hieraus ja die Komponente die Debuggt werden soll aufgerufen wird).

    Alles schön und gut, aber alle Haltepunkte werden ignoriert.
    Die Meldungen bei den Haltepunkten lauten dann immer wie folgt:
    Der Haltepunkt wird momentan nicht erreicht. Mit dieser Zeile ist kein ausführbarer Code verbunden.
    Mögliche Ursachen: bedingte Kompilierung oder Compilieroptimierungen.

    Ich habe auch schon versucht unter den Projekteigenschaften - Externes Programm starten die Programme einzutragen (Einmal die Hauptanwenden und beim zweiten Mal das Interface), aber Debuggen lässt es sich trotzdem nicht.

    Die ganze VB6 Sache wird im laufe des Jahres noch wegfallen aber bis dahin sollte man trotzdem Debuggen können gerade um Bugs zu fixen. Hätte da noch irgendwer eine Idee wie man das Problem beheben könnte?
    Neben der .NET-exe oder dll muss die aktuelle PDB-Datei mit demselben Namen wie die exe / dll liegen.
    Diese sollten beide gemeinsam nach dem kompilieren in das Ausführungsverzeichnis kopiert werden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Jein.
    Die .NET dll wird ja per CreateObject unter VB6 aufgerufen. Dann muss die dll ja nicht im Ausführungsverzeichnis liegen sondern nur registriert sein?!
    Beim Erstellen wird diese ja registriert. Die PDB-Datei liegt natürlich neben der dll.

    Habe beides trotzdem mal testweise ins Ausführungsverzeichnis kopiert, was aber leider auch nicht geholfen hat.
    Erstell mal nicht zu viele Kopien dieser DLL, da verlierst Du leicht den Überblick.
    Die registrierte DLL, die Du bei Create instanziierst, sollte die im Debug-Verzeichnis des DLL-Projekts sein. Wenn Du sie dann an den Prozess anhängst, solltest Du Dich auch im richtigen Verzeichnis befinden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!