Я разобрался в проблеме. Преобразование происходит как часть шага решения для сборки - в файле решения. Проблема заключается в том, что кто-то изменил конфигурацию в файле решения, чтобы каждая конфигурация по умолчанию имела значение «Отладка», кроме QA, который был установлен правильно. Как только я отменил это изменение, все заработало как положено.
Все вызовы к System.Diagnostics.Debug.Print()
будет удален, когда Вы переключитесь на версию выпуска.
Используйте Log4net с входом на уровне отладки в выпуске и предупредите или ошибочный уровень в производстве.
Преимущество для этого - то, что можно стать входящими на в среде выпуска, если у Вас есть проблемы там, что Вы не можете воссоздать в разработке.
[РЕДАКТИРОВАНИЕ] FWIW, я нахожу, что действительно намного меньше отлаживаю вход теперь, когда я использую Разработку через тестирование. Большая часть моего входа имеет предупредить/ошибка разнообразие.
Посмотрите на Систему. Диагностика. Отладка и Система. Диагностика. Классы трассировки.
Я использую: Система. Консоль. WriteLine ()
#if DEBUG
System.Console.WriteLine("Message");
#endif
Отладка и трассировка связаны, но отличные операции. System.Diagnostics
пространство имен поддерживает их обоих.
Использовать Debug.Write/WriteLine
записать сообщения отладки в файл журнала. (И к Окну вывода.) Использование Debug.Assert
, Ну, в общем, в значительной степени везде. Весь код, что Вы пишете использование Debug
класс удален, прежде complilation, если Вы не определяете Отладочный символ в своем коде - это сделано по умолчанию в опциях для конфигураций Отладки и Выпуска.
Использовать Trace.Write/WriteLine
записать сообщения трассировки. Эти методы функционально эквивалентны методам класса Отладки; различие - то, что они удалены, если Вы не определяете символ ТРАССИРОВКИ в своем коде.
Классы Отладки и Трассировки также имеют целую немного громоздкую инфраструктуру других классов, как TextWriterTraceListener
, это позволяет Вам делать, элегантным вещам нравится, изменяют вывод Вашего журнала трассировки из локального файла на диске к веб-сервису (или ни к чему) только путем редактирования файла конфигурации приложения. Мой любимый прием должен реализовать a TextWriter
это может записать текст в a TextBox
, и используйте это для перенаправления всей отладки и вывода трассировки к UI.
Можно также установить флаги в файле конфигурации приложения что WriteIf
и WriteLineIf
уважение методов, но по моему опыту они становятся довольно громоздкими.
Я нахожу, что в целом, я более счастлив, если я создаю свой собственный статический класс для обертывания Trace
методы. Это позволяет мне сделать, вещам нравится, включают и выключают трассировку в UI только путем установки свойства моего Trace
класс.
Наконец: если необходимо оснастить приложение, чтобы сделать что-то как трассировка, когда каждый метод начинается и заканчивается, инструментом для использования для этого является удивительный PostSharp.
Можно также изучить решения для Аспектно-ориентированного программирования. Они делают этот вид вещи действительно хорошо. Взгляд на PostSharp как хорошая реализация. Их пример кода обычно содержит пример точно, что Вы ищете.