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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top