Я поместил много Debug.WriteLine в свой код для отладки. Когда я буду готов к выпуску, будут ли эти Debug.Write влиять на сборку релизов и где они выводятся на?
Где будет Debug.WriteLine в С# для вывода в релиз сборки?
Ответ 1
От MSDN: "Атрибут ConditionalAttribute применяется к методам Debug. Компиляторы, которые поддерживают ConditionalAttribute, игнорируют вызовы этих методов, если только" DEBUG "не является условным символом компиляции. Обратитесь к документации компилятора, чтобы определить, поддерживается ли ConditionalAttribute, и синтаксис для определения условный символ компиляции."
Итак, если ваша версия релиза не включает символ DEBUG, вызовы Debug.WriteLine будут отсутствовать во время компиляции и не будет выхода.
Ответ 2
Debug.WriteLine
аннотируется атрибутом Conditional
. (см. MSDN)
ConditionalAttribute сообщает компилятору не генерировать этот код, если не указан флаг DEBUG
.
Ответ 3
Если вы переключите их на Trace.WriteLine
, вы можете определить произвольные слушатели в файле app/web.config.
Ответ 4
Debug.Writeline не компилируется в код выпуска.
Ответ 5
Я считаю, что он будет скомпилирован.