2012-04-10 5 views
1

In meiner .NET-Anwendung befestigen ist ein Fenster, das Sie Code in eingeben können (Skripte, ist die Sprache C#. Sie werden durch Reflexion laufen)Wie Debugger Skript gibt

ich eine Möglichkeit der Debug-Skripte in kompilierten Anwendung benötigen genau wie in Visual Studio. Ist es möglich, MS Debugger oder andere dafür zu verwenden? Und wie wenn ja?

Edit: Ist es möglich, auf Visual Studio zu verzichten?

Nun, im Großen und Ganzen ist es so: Benutzer Code eingegeben, drückt "Ausführen". Sssript wird in einer DLL erstellt. Und dann wird es durch Reflexion (eher durch methodInfo.Invoke()) ausgeführt.

+0

Beachten Sie, dass in .NET 4 (behoben in .NET 4.5) ein Fehler vorliegt, der verhindert, dass Haltepunkte neu bewertet werden, wenn der gleiche Code erneut ausgeführt wird (natürlich in einer neuen In-Memory-Assembly). https://connect.microsoft.com/VisualStudio/feedback/details/684089/debugger-fails-to-re-evaluate-breakpoints-when-new-code-is-executed-in-a-transient-assembly – leppie

Antwort

0

Starten Sie Ihre App, dann in Visual Studio, wählen Sie Debug> An Prozess anhängen, und wählen Sie Ihren Prozess. Auf diese Weise können Sie die vorkompilierten Teile Ihrer App debuggen. Was das Debuggen der vom Benutzer eingegebenen Skripts betrifft ... ich nehme an, das hängt davon ab, wie Sie sie ausführen.

Bearbeiten: Beim erneuten Lesen Ihrer Frage, ich denke, Sie fragen, ob es möglich ist, den Benutzercode mit Ihrer App debuggen, nicht mit Visual Studio. Wenn das der Fall ist, bin ich mir nicht sicher, ob das möglich ist. Es scheint mir, dass es möglicherweise sehr schwierig ist, aber es hängt davon ab, wie genau Sie den Code des Benutzers ausführen. Mehr Details würden helfen.

0

Verwenden Sie System.Diagnostics.Debugger.Break(), um das Ausführen und Öffnen des Debuggers zu beenden. Oder System.Diagnostics.Debugger.Launch() zum Starten und Anhängen eines Debuggers an den Prozess.

Verwandte Themen