Получить имя файла и номер строки из исключения
У меня есть приложение aC# windows (разработанное в архитектуре плагинов), я хочу регистрировать все необработанные исключения из моего приложения. Я могу поймать все исключения.
Я хочу прочитать имя файла и номер строки из исключения. (в .Net 2.0)
я использовал
if (exception.InnerException != null)
{
exception = exception.InnerException;
}
StackTrace trace = new StackTrace(exception, true);
string fileName = trace.GetFrame(0).GetFileName();
int lineNo = trace.GetFrame(0).GetFileLineNumber();
он работает нормально с исключением в моем приложении, если любое исключение в справочной DLL я не получил fileName и lineNumber
2 ответа
Эта информация доступна только в том случае, если доступен файл ".pdb" для рассматриваемой библиотеки.
Поэтому вы должны убедиться, что соответствующие файлы ".pdb" находятся рядом с соответствующими им библиотеками DLL.
Вам также необходимо включить полные данные в файлах PDB. Сборки отладки делают это по умолчанию, но сборки выпуска не включают информацию о номере строки.
Для этого можно настроить сборку релиза, перейдя на страницу сборки проекта, убедитесь, что вы выбрали конфигурацию "Выпуск", а затем нажмите кнопку "Дополнительно" в нижней части страницы. В диалоговом окне "Дополнительные параметры сборки" необходимо выбрать "Полный" для параметра "Отладочная информация".
Первый кадр не всегда правильный ответ. В моем случае это был последний. В общем, я думаю, что это первый файл.