Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug
При отладке приложения во время разработки результаты трассировки и отладки выводятся в окне вывода в Visual Studio. Однако чтобы включить средства трассировки в развертываемое приложение, необходима компиляция инструментированных приложений с включенной директивой компилятора TRACE. Это позволяет выполнить компиляцию кода трассировки в коммерческую версию приложения. Если директива TRACE отключена, весь код трассировки при компиляции не обрабатывается и не включается в исполняемый код для развертывания.
Методы трассировки и отладки имеют связанные с ними условные атрибуты. Например, если условный атрибут трассировки имеет значение true, все операторы трассировки включаются в сборку (компилированные файлы EXE или DLL); если условный атрибут Trace имеет значение false, инструкции трассировки не включаются.
В построение может быть включен один из условных атрибутов Trace или Debug, или оба, или ни одного. Следовательно, существует четыре типа построения: Debug, Trace, оба и ни одного. Некоторые построения выпуска для рабочего развертывания могут не содержать включенных параметров, но большинство построений отладки содержат оба.
Существует несколько способов задать параметры компилятора для приложения:
Страницы свойств
Командная строка
#CONST (для Visual Basic) и #define (для C#)
Изменение параметров компиляции с помощью диалогового окна страниц свойств
Щелкните правой кнопкой узел проекта в Обозревателе решений.
Из контекстного меню выберите пункт Свойства.
В Visual Basic: выберите вкладку Компиляция в левой области страницы свойств, затем нажмите кнопку Дополнительные параметры компиляции, чтобы отобразить диалоговое окно Дополнительные настройки компилятора. Установите флажки для параметров компилятора, которые следует включить. Снимите флажки для параметров, которые требуется отключить.
В С#: выберите вкладку Построение в левой области страницы свойств, затем установите флажки для тех параметров компилятора, которые необходимо включить. Снимите флажки для параметров, которые требуется отключить.
Компиляция инструментированного кода с помощью командной строки
Задайте условный ключ компилятора в командной строке. Компилятор включит код трассировки или отладки в исполняемый файл.
Например, следующая инструкция компилятора, введенная в командной строке, позволит включить код трассировки в компилируемый исполняемый файл:
Для Visual Basic: vbc /r:System.dll /d:TRACE=TRUE /d:DEBUG=FALSE MyApplication.vb.
Для C#: csc /r:System.dll /d:TRACE /d:DEBUG=FALSE MyApplication.cs.
Совет
Чтобы скомпилировать несколько файлов приложения, следует оставить пробел между именами файлов, например, MyApplication1.vb MyApplication2.vb MyApplication3.vb или MyApplication1.cs MyApplication2.cs MyApplication3.cs.
В приведенных выше примерах используются следующие значения директив условной компиляции:
Директива
Значение
vbc
Компилятор Visual Basic
csc
Компилятор C#
/r:
Ссылка на внешнюю сборку (EXE или DLL)
/d:
Определяет символ условной компиляции
Примечание
Необходимо использовать для TRACE или DEBUG буквы верхнего регистра.Для получения дополнительных сведений о командах условной компиляции следует ввести в командной строке vbc /? (для Visual Basic) или csc /? (для С#).Дополнительные сведения см. в разделах Построение из командной строки (C#) или Вызов компилятора командной строки (Visual Basic).
Выполнение условной компиляции с помощью #CONST или #define
Введите оператор, соответствующий используемому языку программирования, в верхней части файла исходного кода.
Язык
Оператор
Результат
Visual Basic
#CONST TRACE = true
Включает трассировку
#CONST TRACE = false
Отключает трассировку
#CONST DEBUG = true
Включает отладку
#CONST DEBUG = false
Отключает отладку
C#
#define TRACE
Включает трассировку
#undef TRACE
Отключает трассировку
#define DEBUG
Включает отладку
#undef DEBUG
Отключает отладку
Отключение трассировки или отладки
Удалите директиву компилятора из исходного кода.
—либо—
Добавьте знак комментария к директиве компилятора.
Примечание
Чтобы приступить к компиляции, можно выбрать команду Построить в меню Построение или использовать метод командной строки без ввода d: для определения символов условной компиляции.
См. также
Задачи
Практическое руководство. Конфигурация переключателей трассировки
Практическое руководство. Добавление операторов трассировки в код приложения
Практическое руководство. Задание переменных среды
Практическое руководство. Вызов компилятора командной строки (Visual Basic)
Основные понятия
Введение. Подготовка к инструментированию и трассировка.