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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top