Подтвердить что ты не робот

Не показывать пути к файлу сборки в трассировке стека

В настоящее время я разрабатываю приложение С#, которое имеет собственный журнал. Когда выбрасываются исключения, исключение сохраняется в списке, который может быть просмотрен пользователем через представление списка. Когда пользователь нажимает на исключение в представлении списка, трассировка стека исключений отображается в текстовом поле. Но даже когда я выполняю программу на удаленной машине, трассировка стека показывает пути файлов к исходным исходным файлам с компьютера, на котором было скомпилировано приложение.

например:.

at C:\Folder1\Folder2\Class1.cs:81
at C:\Folder1\Folder2\Class2.cs:65
at C:\Folder1\Folder1\Class3.cs:21

Только отображение исходных файлов без папок будет приятным...

Как я могу изменить это поведение?

Есть ли собственное решение? Или мне нужно просто выполнить некоторые манипуляции с строкой?

4b9b3361

Ответ 1

У вас, вероятно, есть файлы .pdb с установленным приложением. Без файлов .pdb он не должен показывать расположение файлов.

Посмотрите Получение номеров строк в трассировке стека исключений в службе Windows

и включают номера строк в трассировке стека без pdb?

Вы не можете получить трассировку стека с помощью строки номера непосредственно из вашей заявки если вы не свяжете PDB.

Ответ 2

Пути файлов включены в " база данных программ" (.pdb). Такие файлы создаются во время компиляции, а пути в этих файлах - как на компиляционной машине.

Вы можете удалить файлы .pdb из своей установки, но таким образом ваша трассировка стека будет наполовину интересной, как сейчас, поскольку она не сообщит вам о строке, в которой произошла ошибка. Как правило, вы не запускаете код в рабочей среде с прикрепленными файлами Pdb.

Если вы хотите сохранить "интересную трассировку стека", вы можете рассмотреть возможность замены строки имен папок после вызова exceptionObject.toString().