У меня в основном две проблемы с релизом отладки:
- Отладочная информация может быть большой и ненужной страховой проверкой для будущего обслуживания, которую можно избежать другими способами.
- Диагностика - это аспект вашего приложения, который не должен иметь отношения к вашей сборочной конфигурации или зависимости от нее
Я думаю, что важно разработать и сохранить логику приборов и диагностики в вашем приложении как аспект или сквозную проблему. Если вы слишком полагаетесь на информацию, предоставленную отладочной версией вашего кода:
- Можете ли вы гарантировать, что это будет отладочная версия, которая будет выпускаться каждый раз при выпуске новой версии вашего приложения? плохая документация, кто-то другой делает это и т. д.
- Приложения имеют тенденцию к росту функциональности и сложности. Хотя производительность и размер вашего приложения из-за отладочной версии в данный момент могут не быть проблемой. Все может сложиться и привести к потенциальным проблемам. В случае проблем с производительностью вы можете даже не приписывать их отладочной версии.
Вы все еще можете собирать ценную информацию в версии выпуска. Трассировка стека все еще должна быть доступна в случае исключений. Вы можете не видеть исходный файл и номера строк, но вы все равно можете видеть, какие методы вызываются. Однако вы все равно должны создавать и хранить символы отладки для вашей сборки выпуска. Эти символы позволят вам отладить вашу версию выпуска (вы даже можете настроить сервер символов). Из-за оптимизации кода отладочная информация, скорее всего, не будет соответствовать 100% кода, например отладочная информация, относящаяся к оптимизированному оператору и т. д., но вы все равно должны быть в состоянии отладить большую часть его, хорошо. Другая информация, такая как вводимые пользователем данные, промежуточные данные, выполненный код базы данных и т. Д. Отладочный выпуск не поможет вам, так как он не собирает эту информацию. Вы должны следить за ними самостоятельно.
Если вы используете .NET, вы можете взглянуть на Tracing and Instrumentation . Вы также можете рассмотреть возможность использования существующей платформы, такой как Microsoft Enterprise Library или log4net. Если это приложение .NET, вы также можете запросить JIT-компилятор для создания информации отслеживания для версии выпуска вашего приложения в качестве опции. Ознакомьтесь с этой статьей MSDN .