Ich lade DLLs während der Laufzeit mit Assembly.Load(Name) und rufe die Methoden der DLLs mit MethodInfo.Invoke() auf.
Leider schaffe ich es nicht, in die so aufgerufene DLL hinein zu debuggen, d.h. bei darin gesetzten Breakpoints hält VS2005 nicht an und Single-Step springt einfach über den Aufruf hinweg.
Beim Programmaufruf erhalte ich außerdem die Fehlermeldung:
"Das folgende Modul wurde entweder mit aktivierten Optimierungen oder ohne Debuginformationen erstellt: ... Zum Debuggen des Moduls verwenden Sie als Projektbuildkonfiguration den Debugmodus...", was ich natürlich gemacht habe.
Wie schaffe ich es, in den DLLs zu debuggen?
Tach.
Ich hab das System dahinter auch noch nicht ganz kapiert. Wie folgt hat es aber bei mir funktioniert, um die DLLs zu debuggen.
Wenn das auch nicht funktioniert, kannst du das Projekt der DLL in deine Projektmape einbinden (!! Ohne eine Referenz darauf zu setzen !!) und es dynamisch aus "...\bin\Debug" laden.
Gruß
Juy Juka
PS: "Das folgende Modul wurde entweder mit aktivierten Optimierungen oder ohne Debuginformationen erstellt" heist übrigens, dass beim Kompilieren in Visual Studio: A) "Release" in der DropDown-Box ausgewählt war oder B) In den Projekt-Eigenschafen die CheckBox "CodeOptimierung" angewählt ist.
Verstehe ich richtig das du zur Laufzeit mit deiner Anwendung andere DLLs debuggen willst? Wenn ja, dann könnte es so gehen:
Du könntest versuchen einen Debugger quasi an dich selber anzuhängen:
System.Diagnostics.Debugger.Launch();
Wenn du jetzt den Debugger.Launch(); in einen extra Prozess auslagerst und dort dann die Methode aus der DLL startest, hättest du theorethisch einen Prozess mit angehängtem Debugger.
Habe dass noch nicht probiert, stelle es mir aber so vor. =)