Gewusst wie: Bedingtes Kompilieren mit Ablaufverfolgung und Debuggen

Aktualisiert: November 2007

Beim Debuggen einer Anwendung während der Entwicklung wird sowohl die Ablaufverfolgungs- als auch die Debugausgabe im Ausgabefenster in Visual Studio angezeigt. Damit Ablaufverfolgungsfeatures in einer bereitgestellten Anwendung enthalten sind, müssen Sie beim Kompilieren von instrumentierten Anwendungen jedoch die TRACE-Compileranweisung aktivieren. Dadurch kann Ablaufverfolgungscode in die Releaseversion der Anwendung kompiliert werden. Wenn die TRACE-Anweisung nicht aktiviert wird, wird der gesamte Ablaufverfolgungscode bei der Kompilierung ignoriert und nicht in den bereitgestellten ausführbaren Code integriert.

Sowohl der Ablaufverfolgung als auch dem Debuggen sind bedingte Attribute zugeordnet. Beispiel: Wenn das bedingte Attribut für die Ablaufverfolgung true ist, werden alle Ablaufverfolgungsanweisungen in eine Assembly integriert (eine kompilierte EXE-Datei oder DLL); wenn das bedingte Trace-Attribut false ist, werden sie nicht integriert.

Sie können für ein Build entweder das bedingte Trace-Attribut oder Debug-Attribut, beide oder keines von beiden aktivieren. Infolgedessen gibt es vier Build-Typen: Debug, Trace, beides oder keines von beiden. Manche Releasebuilds für die Produktionsbereitstellung enthalten keines von beiden Attributen, während die meisten Debugbuilds beide aufweisen.

Die Compilereinstellungen für die Anwendung können auf mehrere Arten angegeben werden:

  • Eigenschaftenseiten

  • In der Befehlszeile

  • #CONST (für Visual Basic) und #define (für C#)

So ändern Sie Kompilierungseinstellungen im Dialogfeld Eigenschaftenseiten

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt.

  2. Wählen Sie im Kontextmenü die Option Eigenschaften aus.

    • In Visual Basic klicken Sie im linken Bereich der Eigenschaftenseite auf die Registerkarte Kompilieren und anschließend auf die Schaltfläche Erweiterte Kompilierungsoptionen, um das Dialogfeld Erweiterte Kompilierungsoptionen anzuzeigen. Aktivieren Sie die Kontrollkästchen für die Compilereinstellungen, die aktiviert werden sollen. Deaktivieren Sie die Kontrollkästchen für die Einstellungen, die deaktiviert werden sollen.

    • In C# klicken Sie im linken Bereich der Eigenschaftenseite auf die Registerkarte Erstellen und aktivieren anschließend die Kontrollkästchen für die Compilereinstellungen, die aktiviert werden sollen. Deaktivieren Sie die Kontrollkästchen für die Einstellungen, die deaktiviert werden sollen.

So kompilieren Sie instrumentierten Code von der Befehlszeile aus

  • Legen Sie einen bedingten Compilerschalter in der Befehlszeile fest. Der Compiler integriert Ablaufverfolgungs- oder Debugcode in die ausführbare Datei.

    Wenn Sie z. B. die folgende Compileranweisung in die Befehlzeile eingeben, wird der Ablaufverfolgungscode in eine kompilierte ausführbare Datei integriert:

    In Visual Basic: vbc /r:System.dll /d:TRACE=TRUE /d:DEBUG=FALSE MyApplication.vb

    In C#: csc /r:System.dll /d:TRACE /d:DEBUG=FALSE MyApplication.cs

    Tipp:

    Setzen Sie beim Kompilieren mehrerer Anwendungsdateien ein Leerzeichen zwischen die einzelnen Dateinamen, z. B.: MyApplication1.vb MyApplication2.vb MyApplication3.vb oder MyApplication1.cs MyApplication2.cs MyApplication3.cs.

    Die in den oben genannten Beispielen verwendeten bedingten Kompilierungsanweisungen haben folgende Bedeutung:

    Direktive

    Bedeutung

    vbc

    Visual Basic-Compiler

    csc

    C#-Compiler

    /r:

    Verweist auf eine externe Assembly (EXE oder DLL)

    /d:

    Definiert ein Symbol für die bedingte Kompilierung

    Hinweis:

    TRACE und DEBUG müssen in Großbuchstaben eingegeben werden. Weitere Informationen zu den bedingten Kompilierungsbefehlen können Sie abrufen, indem Sie an der Befehlszeile vbc /? (für Visual Basic) oder csc /? (für C#) eingeben. Weitere Informationen finden Sie unter Erstellen über die Befehlszeile (C#) oder Aufrufen des Befehlszeilencompilers (Visual Basic).

So führen Sie eine bedingte Kompilierung mit #CONST oder #define durch

  • Geben Sie am Anfang der Quellcodedatei die entsprechende Anweisung in der jeweiligen Programmiersprache ein.

    Sprache

    Anweisung

    Ergebnis

    Visual Basic

    #CONST TRACE = true

    Aktiviert Ablaufverfolgung

     

    #CONST TRACE = false

    Deaktiviert Ablaufverfolgung

     

    #CONST TRACE = true

    Aktiviert Debuggen

     

    #CONST TRACE = false

    Deaktiviert Debuggen

    C#

    #define TRACE

    Aktiviert Ablaufverfolgung

     

    #undef TRACE

    Deaktiviert Ablaufverfolgung

     

    #define DEBUG

    Aktiviert Debuggen

     

    #undef DEBUG

    Deaktiviert Debuggen

So deaktivieren Sie Ablaufverfolgung oder Debuggen

  1. Löschen Sie die Compileranweisung aus dem Quellcode.

    – oder –

  2. Kennzeichnen Sie die Compileranweisung als Kommentar.

    Hinweis:

    Für die Kompilierung können Sie entweder im Menü Erstellen die Option Erstellen auswählen oder die Befehlszeilenmethode anwenden, jedoch ohne d: zum Definieren der bedingten Kompilierungssymbole einzugeben.

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern

Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode

Gewusst wie: Festlegen von Umgebungsvariablen

Gewusst wie: Aufrufen des Befehlszeilencompilers

Konzepte

Einführung in Instrumentation und Ablaufverfolgung

Ablaufverfolgungsschalter

Ablaufverfolgungslistener

Weitere Ressourcen

Ablaufverfolgung und Instrumentieren von Anwendungen