Версия выпуска C # все еще имеет .pdb файл - PullRequest
58 голосов
/ 03 марта 2010

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

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

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

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

Ответы [ 5 ]

94 голосов
/ 03 марта 2010

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

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

48 голосов
/ 03 марта 2010

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

13 голосов
/ 03 марта 2010

Вы управляете генерацией pdb / символов в свойствах проекта в Build -> Advanced ... -> Debug info :. Варианты:

  • нет (нет информации о символах)
  • full (будет создан файл .pdb, а некоторая информация о символах встроена в сборку)
  • только для pdb (будет создан файл .pdb, но сборка не затронута)

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

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

13 голосов
/ 03 марта 2010

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

Без использования .PDB номера строк и имена файлов не включаются в трассировки стека, поэтому их отладка значительно усложняется.

7 голосов
/ 03 марта 2010

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

Подробнее об этом читайте в этих блогах записей .

...