Что такое файл PDB?


Что такое PDB-файл и как я могу исключить его из папки release при перестроении моего решения?

4 186

4 ответа:

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

Я изначально задал себе вопрос:"нужен ли мне файл PDB, развернутый на машине моего клиента?", и после прочтения этого поста, решила исключить файл.

все работало нормально, до сегодняшнего дня, когда я пытался выяснить, почему окно сообщения, содержащее Exception.StackTrace отсутствовала информация о файле и номере строки-необходимая для устранения неполадок исключения. Я перечитал этот пост и нашел ключевой самородок информации: хотя PDB не обязательно для запуска приложения, необходимо, чтобы номера файлов и строк присутствовали в StackTrace строку. Я включил PDB-файл в исполняемую папку, и теперь все в порядке.

PDB - это аббревиатура Pпрограмма DАта Base. Как следует из названия, это репозиторий (постоянное хранилище, такое как базы данных) для хранения информации, необходимой для запуска программы в режиме отладки. Он содержит много важных релевантных сведений, необходимых при отладке кода (в Visual Studio), например, в каких точках вы вставили точки останова, где вы ожидаете, что отладчик сломается в Visual Studio.

Это причина, по которой много раз Visual Studio не может попасть в точки останова, если вы удалите *.pdb файлы из папки отладки. Отладчик Visual Studio также может сообщить вам точный номер строки файла кода, в котором произошло исключение в трассировке стека с помощью *.PDB-файл. Так что эффективно pdb файлы действительно являются благом для разработчиков при отладке программы.

вообще-то это не рекомендуется, чтобы исключить поколения *.PDB-файл. От максимум, что вы должны делать, это создавать файлы pdb, но не отправлять их на сайт клиента в установщике продукта. Сохраните все сгенерированные pdb-файлы на сервере символов, откуда они могут использоваться/ссылаться в будущем, если это необходимо. специально для случаев, когда вы отлаживаете такие проблемы, как сбой процесса. Когда вы начинаете анализировать файлы аварийного дампа, и если в исходном *.pdb файлы, созданные в процессе сборки не сохраняются, то Visual Studio не будет быть в состоянии разобрать точную строку кода, которая вызывает сбой.

Если все же вы действительно хотите отключить генерацию *.pdb файлы в целом для любого выпуска затем перейдите к свойствам проекта - > вкладка сборки - > нажмите на кнопку Дополнительно - > выберите Нет для поля "отладочная информация" - > нажмите OK, как показано на снимке ниже.

None Debug Info setting for a C# Project

Примечание: Эта настройка должна быть выполнена отдельно для "Debug" и " Release" конфигурация построения.

A PDB файл содержит информацию, используемую отладчиком. Это не требуется для запуска приложения, и он не должен быть включен в вашей выпущенной версии.

можно отключить создание файлов pdb в Visual Studio. Если вы строите из командной строки или сценария, то опустите /Debug переключатель.