В моем приложении есть функция сценариев, где я компилирую сборку в памяти из сценария пользователя, используя CodeDomProvider.CompileAssemblyFromSource. Это похоже на то, что описано в этом ответе .
Это работает очень хорошо, но любые исключения, которые вызываются из кода скрипта, не имеют номеров строк в трассировке стека. Я попытался установить compilerParameters.IncludeDebugInformation = true, но он по-прежнему не включает номера строк.
Можно ли получить номера строк исключений из сборки в памяти?
Вот ключевые фрагменты кода, которые я использую для компиляции сборки:
CompilerParameters compilerParameters =
compilerInfo.CreateDefaultCompilerParameters();
compilerParameters.GenerateInMemory = true;
compilerParameters.GenerateExecutable = false;
compilerParameters.IncludeDebugInformation = true;
...
CodeDomProvider codeProvider = compilerInfo.CreateProvider();
CompilerResults compilerResults =
codeProvider.CompileAssemblyFromSource(
compilerParameters,
new string[] { sourceCode });