Есть ли какая-либо причина не отправлять файлы pdb вместе с вашим приложением?
Поскольку вы можете использовать рефлектор для обратного инжиниринга приложения.Net, есть ли причина НЕ отправлять файлы pdb вместе с приложением? Если вы отправите их вместе с ним, то в трассировке стека будет указан номер строки с проблемой, что полезно в случае сбоя.
Пожалуйста, введите только 1 причину для комментария для голосования.
6 ответов
Доставка pdb не дает дополнительного удобства пользователю. Поэтому нет причин отправлять файлы pdb вместе с приложением. К тому же файл pdb обычно имеет большой размер.
Вместо доставки файлов pdb вы должны использовать локальный сервер Microsoft Symbol Server для быстрого доступа к файлам pdb, соответствующим отчетам об ошибках. Здесь вы можете найти подробное объяснение как использовать Symbol Server.
Большинство людей хотят отправить оптимизированную сборку. Но если вы отправляете pdb с оптимизированной сборкой, номера исходных строк, скорее всего, будут отключены.
Доставка PDB с вашим приложением позволяет упростить реверс-инжиниринг, поскольку он содержит имена локальных переменных / объектов, прототипы функций и т. Д.
Отражатели могут получить высокоуровневую версию кода MSIL вашего приложения.NET, но это не означает, что его обязательно использовать / взламывать... Большая часть кода не будет иметь смысла для случайного прочтения без имен приватных переменные и функции наряду с другими вещами, к которым.NET Reflector не может получить доступ без файла PDB.
Очевидно, что если вы используете какой-либо приличный обфускатор (лично мне нравится {smartassembly}, но из-за отсутствия перекрестного запутывания), то вы потеряете все его защиты только для добавленной стоимости номеров строк, а это не так. действительно справедливый компромисс.
Во всяком случае, номера строк переоценены!
Помимо того, что они чрезвычайно тяжелы в любом серьезном проекте? Нет, нет причин, если вы не возражаете против того, чтобы люди перепроектировали ваше программное обеспечение.