Linenumber pour exception levée dans le code dotnet runtime compilé-
-
20-09-2019 - |
Question
Pas tout à fait la même chose que ce fil , mais assez proche .
Mon programme permet aux gens d'entrer dans une VB ou C # code qui obtient compilé, chargé et exécuté lors de l'exécution. Mes CompilerParams sont:
CompilerParameters params = new CompilerParameters();
params.GenerateExecutable = false;
params.GenerateInMemory = true;
params.IncludeDebugInformation = false;
params.TreatWarningsAsErrors = false;
params.WarningLevel = 4;
Lorsque ce code renvoie une exception que je voudrais être en mesure d'afficher une boîte de message qui permet aux utilisateurs de déboguer leur code. Le message d'exception est facile, mais le numéro de ligne est l'endroit où je suis resté bloqué.
Je pense que pour obtenir au numéro de ligne, je peux avoir besoin de changer radicalement les CompilerParameters et peut-être même la façon dont ces DLLs sont stockés / chargé.
Quelqu'un sait-il les moins les étapes nécessaires pour que cela fonctionne?
La solution
mis OutputAssembly à un fichier temporaire, définissez GenerateInMemory = false, IncludeDebugInformation = true
Cela devrait générer des symboles et vous permettent d'obtenir une trace complète de la pile avec des lignes de code