Подтвердить что ты не робот

Trace.WriteLine в режиме выпуска?

Можно ли использовать Trace.WriteLine в режиме выпуска?

И в чем основное отличие между Trace.Write и Debug.Write?

4b9b3361

Ответ 1

Оба условно скомпилированы с использованием атрибута [Conditional].

Если флаг TRACE определен в сборке, то вызов класса TRACE приведет к записи трассировки. По умолчанию TRACE определяется как в режиме отладки, так и в режиме release. Если флаг не определен, ничего не произойдет.

Если флаг DEBUG определен, то вызовы класса DEBUG приводят к тому, что вывод записывается в поток отладки. По умолчанию DEBUG определяется только в режиме отладки.

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

Ответ 2

DEBUG: DEBUG settings

RELEASE: Установки RELEASE

Как вы видите, константа TRACE включена в обоих конфигурациях по умолчанию.

Ответ 3

Разница заключается в режиме Release.

Debug.Write не будет скомпилирован в код, если символ DEBUG не определен, то есть компилируется в режиме Release.

Однако Trace.Write будет скомпилирован как в режиме отладки, так и в режиме Release.