Версия выпуска C# все еще есть.PDB-файл


Я хочу развернуть выпускную версию моего приложения, выполненную на C#.

когда я строю с помощью Release config, я все еще вижу, что .pdb файлы создаются, что означает, что мое приложение все еще может быть отлажено. Это также означает, что некоторая отладочная информация присутствует где-то в моем коде, немного замедляя его.

если это правда, как я могу полностью подавить любую отладочную информацию, созданную в двоичных файлах? Вы также знаете причину наличия отпустите .pdb? Элемент Release конфигурация Optimize code проверил, и только TRACE константа определена, а не DEBUG.

Спасибо за помощь.

5 53

5 ответов:

если вы хотите отключить генерацию файлов pdb, вам нужно использовать "Advanced build settings" диалоговое окно, доступное в свойствах проекта после нажатия кнопки "Advanced..." кнопка " расположена в нижней части Build tab.

Set Output - Debug info: до None для конфигурации сборки выпуска и файлов pdb не будет создано.

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

вы управляете генерацией pdb / символов в свойствах проекта в разделе Build - > Advanced... - >Отладочная информация:. Возможны следующие варианты:

  • нет (нет информации о символе)
  • полное (a .pdb будет создан, и некоторая информация о символах будет встроена в сборку)
  • pdb-only (a .pdb будет создан, но сборка не будет затронута)

посмотреть http://msdn.microsoft.com/en-us/library/8cw0bt21%28VS.80%29.aspx для получения дополнительной информации.

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

вы не должны грузить .PDBs с вашим развертыванием выпуска, но они полезны для сохранения - например, вы можете удаленно отлаживать код, запущенный на другом компьютере, используя PDBs на вашем компьютере, чтобы получить номера строк, где происходят исключения.

без использования .PDBs, номера строк и имена файлов не включены в stacktraces, поэтому их гораздо сложнее отлаживать.

имея компилятор сгенерирует .pdb файл не является взаимоисключающим для оптимизации кода.

для получения дополнительной информации по этой теме, прочитайте эти блогзаписи.