Поделиться через


Практическое руководство. Условная компиляция с использованием атрибутов Trace и Debug

При отладке приложения во время разработки результаты трассировки и отладки выводятся в окне вывода в Visual Studio. Однако чтобы включить средства трассировки в развертываемое приложение, необходима компиляция инструментированных приложений с включенной директивой компилятора TRACE. Это позволяет выполнить компиляцию кода трассировки в коммерческую версию приложения. Если директива TRACE отключена, весь код трассировки при компиляции не обрабатывается и не включается в исполняемый код для развертывания.

Методы трассировки и отладки имеют связанные с ними условные атрибуты. Например, если условный атрибут трассировки имеет значение true, все операторы трассировки включаются в сборку (компилированные файлы EXE или DLL); если условный атрибут Trace имеет значение false, инструкции трассировки не включаются.

В построение может быть включен один из условных атрибутов Trace или Debug, или оба, или ни одного. Следовательно, существует четыре типа построения: Debug, Trace, оба и ни одного. Некоторые построения выпуска для рабочего развертывания могут не содержать включенных параметров, но большинство построений отладки содержат оба.

Существует несколько способов задать параметры компилятора для приложения:

  • Страницы свойств

  • Командная строка

  • #CONST (для Visual Basic) и #define (для C#)

Изменение параметров компиляции с помощью диалогового окна страниц свойств

  1. Щелкните правой кнопкой узел проекта в Обозревателе решений.

  2. Из контекстного меню выберите пункт Свойства.

    • В 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

    Отключает отладку

Отключение трассировки или отладки

  1. Удалите директиву компилятора из исходного кода.

    —либо—

  2. Добавьте знак комментария к директиве компилятора.

    ПримечаниеПримечание

    Чтобы приступить к компиляции, можно выбрать команду Построить в меню Построение или использовать метод командной строки без ввода d: для определения символов условной компиляции.

См. также

Задачи

Практическое руководство. Конфигурация переключателей трассировки

Практическое руководство. Добавление операторов трассировки в код приложения

Практическое руководство. Задание переменных среды

Практическое руководство. Вызов компилятора командной строки (Visual Basic)

Основные понятия

Введение. Подготовка к инструментированию и трассировка.

Переключатели трассировки

Прослушиватели трассировки

Другие ресурсы

Трассировка и оборудование приложений