Vorgehensweise: Bedingtes Kompilieren mit Ablaufverfolgung und Debuggen

Hinweis

Dieser Artikel gilt für das .NET Framework. Er gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.

Beim Debuggen einer Anwendung während der Entwicklung wird sowohl die Ablaufverfolgungsausgabe als auch die Debugausgabe im Ausgabefenster von Visual Studio angezeigt. Allerdings müssen Sie Ihre instrumentierten Anwendungen mit aktivierter TRACE-Compilerdirektive kompilieren, um Ablaufverfolgungsfunktionen in eine bereitgestellte Anwendung aufzunehmen. Dadurch kann der Ablaufverfolgungscode in die Releaseversion der Anwendung kompiliert werden. Wenn Sie die TRACE-Anweisung nicht aktivieren, wird der gesamte Ablaufverfolgungscode bei der Kompilierung ignoriert und nicht in den ausführbaren Code aufgenommen, den Sie bereitstellen.

Sowohl die Ablaufverfolgungsmethoden als auch die Debugmethoden weisen zugeordnete Conditional-Attribute auf. Wenn das Conditional-Attribut für die Ablaufverfolgung beispielsweise TRUE ist, werden alle Ablaufverfolgungsanweisungen in eine Assembly (eine kompilierte EXE- oder DLL-Datei) aufgenommen. Ist das Conditional-Attribut TRACE hingegen FALSE, werden die Ablaufverfolgungsanweisungen nicht aufgenommen.

Für einen Build kann das Conditional-Attribut Trace oder Debug aktiviert sein oder beide Conditional-Attribute oder keines von beiden. Daher gibt es vier Typen von Builds: Debug, Trace, beide oder keines von beiden. Manche Releasebuilds für die Produktionsbereitstellung enthalten keines von beiden, und die meisten Debugbuilds enthalten beide.

Sie können die Compilereinstellungen für die Anwendung auf verschiedene Arten angeben:

  • Eigenschaftenseiten

  • Die Befehlszeile

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

So ändern Sie die Kompilierungseinstellungen im Dialogfeld "Eigenschaftenseiten"

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten.

  2. Wählen Sie im Kontextmenü den Befehl Eigenschaften aus.

    • Klicken Sie in Visual Basic im linken Bereich der Eigenschaftenseite auf die Registerkarte Kompilieren, und klicken Sie dann 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.

    • Klicken Sie in C# auf die Registerkarte Erstellen im linken Bereich der Eigenschaftenseite, und aktivieren Sie dann 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 über die Befehlszeile

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

    Beispielsweise wird der Ablaufverfolgungscode in eine kompilierte ausführbare Datei aufgenommen, wenn die folgende Compileranweisung über die Befehlszeile eingegeben wird:

    Für Visual Basic: vbc -r:System.dll -d:TRACE=TRUE -d:DEBUG=FALSE MyApplication.vb

    Für C#: csc -r:System.dll -d:TRACE -d:DEBUG=FALSE MyApplication.cs

    Tipp

    Lassen Sie einen Leerraum zwischen den Dateinamen, um mehr als eine Anwendungsdatei zu kompilieren, z.B. MyApplication1.vb MyApplication2.vb MyApplication3.vb oder MyApplication1.cs MyApplication2.cs MyApplication3.cs.

    Die in den obigen Beispielen verwendeten Anweisungen zur bedingten Kompilierung bedeuten Folgendes:

    Anweisung Bedeutung
    vbc Visual Basic-Compiler
    csc C#-Compiler
    -r: Verweist auf eine externe Assembly (EXE oder DLL)
    -d: Definiert ein Symbol für bedingte Kompilierung

    Hinweis

    Sie müssen TRACE oder DEBUG mit Großbuchstaben schreiben. Geben Sie an der Eingabeaufforderung vbc /? (für Visual Basic) oder csc /? (für C#) ein, um weitere Informationen zu den Befehlen zur bedingten Kompilierung anzuzeigen. Weitere Informationen finden Sie unter Erstellen von der Befehlszeile aus (C#) oder Aufrufen des Befehlszeilencompilers (Visual Basic).

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

  1. Geben Sie am Anfang der Quellcodedatei die entsprechende Anweisung für Ihre Programmiersprache ein.

    Sprache -Anweisung. Ergebnis
    Visual Basic #CONST TRACE = true Aktiviert die Ablaufverfolgung
    #CONST TRACE = false Deaktiviert die Ablaufverfolgung
    #CONST DEBUG = true Aktiviert das Debuggen
    #CONST DEBUG = false Deaktiviert das Debuggen
    C# #define TRACE Aktiviert die Ablaufverfolgung
    #undef TRACE Deaktiviert die Ablaufverfolgung
    #define DEBUG Aktiviert das Debuggen
    #undef DEBUG Deaktiviert das Debuggen

So deaktivieren Sie die Ablaufverfolgung oder das Debuggen

Löschen Sie die Compilerdirektive aus dem Quellcode.

- oder -

Kommentieren Sie die Compileranweisung aus.

Hinweis

Wenn Sie kompilieren möchten, können Sie entweder Erstellen aus dem Menü Erstellen auswählen oder die Befehlszeilenmethode verwenden, allerdings ohne Eingabe von d: zum Definieren der Symbole für bedingte Kompilierung.

Weitere Informationen