Frage

Nicht ganz die gleiche wie dieser Thread , aber ziemlich nah dran .

Mein Programm ermöglicht es den Menschen etwas VB oder C # Code einzugeben, die kompiliert wird, geladen und zur Laufzeit ausgeführt. Meine CompilerParams sind:

CompilerParameters params = new CompilerParameters();
params.GenerateExecutable = false;
params.GenerateInMemory = true;
params.IncludeDebugInformation = false;
params.TreatWarningsAsErrors = false;
params.WarningLevel = 4;

Wenn dieser Code löst eine Ausnahme Ich mag würde in der Lage sein ein Meldungsfeld anzuzeigen, die Benutzer debuggen ihren Code hilft. Die Ausnahmemeldung ist einfach, aber die Zeilennummer ist, wo ich stecken.

Ich vermute, dass, um an der Zeilennummer zu erhalten, muß ich kann drastisch die Compiler ändern und vielleicht sogar die Art und Weise dieser DLLs gespeichert / geladen werden.

Hat jemand die wenigsten Schritte kennen, um dies zu Arbeit zu bekommen?

War es hilfreich?

Lösung

gesetzt OutputAssembly auf eine temporäre Datei, setzen GenerateInMemory = false, = IncludeDebugInformation wahr
Das sollte Symbole erzeugen und ermöglicht es Ihnen, einen vollständigen Stack-Trace mit Codezeilen erhalten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top