Linho para exceção lançada em código DOTNET compilado por tempo de execução
-
20-09-2019 - |
Pergunta
Não é o mesmo que este tópico, mas bem perto.
Meu programa permite que as pessoas digitem algum código VB ou C# que é compilado, carregado e executado em tempo de execução. Meus compilerparams são:
CompilerParameters params = new CompilerParameters();
params.GenerateExecutable = false;
params.GenerateInMemory = true;
params.IncludeDebugInformation = false;
params.TreatWarningsAsErrors = false;
params.WarningLevel = 4;
Quando esse código for uma exceção, gostaria de exibir uma caixa de mensagem que ajude os usuários a depurar seu código. A mensagem de exceção é fácil, mas o número de linha é onde fiquei preso.
Suspeito que, para chegar ao número da linha, talvez seja necessário alterar drasticamente os compilerparameters e talvez até a maneira como essas DLLs são armazenadas/carregadas.
Alguém sabe as menores etapas necessárias para fazer isso funcionar?
Solução
Defina o outputASSEmbly como um arquivo temp, set generateInMemory = false, incluindoBuginformation = true
Isso deve gerar símbolos e permitir que você obtenha um rastreamento completo de pilha com linhas de código