Vorgehensweise: Bedingtes Kompilieren mit Ablaufverfolgung und DebuggenHow to: Compile Conditionally with Trace and Debug

Beim Debuggen einer Anwendung während der Entwicklung wird sowohl die Ablaufverfolgungsausgabe als auch die Debugausgabe im Ausgabefenster von Visual Studio angezeigt.While you are debugging an application during development, both your tracing and debugging output go to the Output window in Visual Studio. Allerdings müssen Sie Ihre instrumentierten Anwendungen mit aktivierter TRACE-Compilerdirektive kompilieren, um Ablaufverfolgungsfunktionen in eine bereitgestellte Anwendung aufzunehmen.However, to include tracing features in a deployed application, you must compile your instrumented applications with the TRACE compiler directive enabled. Dadurch kann der Ablaufverfolgungscode in die Releaseversion der Anwendung kompiliert werden.This allows tracing code to be compiled into the release version of your application. 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.If you do not enable the TRACE directive, all tracing code is ignored during compilation and is not included in the executable code that you will deploy.

Sowohl die Ablaufverfolgungsmethoden als auch die Debugmethoden weisen zugeordnete Conditional-Attribute auf.Both the tracing and debugging methods have associated conditional attributes. 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.For example, if the conditional attribute for tracing is true, all trace statements are included within an assembly (a compiled .exe file or .dll); if the Trace conditional attribute is false, the trace statements are not included.

Für einen Build kann das Conditional-Attribut Trace oder Debug aktiviert sein oder beide Conditional-Attribute oder keines von beiden.You can have either the Trace or Debug conditional attribute turned on for a build, or both, or neither. Daher stehen vier Typen von Builds: Debuggen von, Ablaufverfolgung, beide oder keines von beiden.Thus, there are four types of build: Debug, Trace, both, or neither. Manche Releasebuilds für die Produktionsbereitstellung enthalten keines von beiden, und die meisten Debugbuilds enthalten beide.Some release builds for production deployment might contain neither; most debugging builds contain both.

Sie können die Compilereinstellungen für die Anwendung auf verschiedene Arten angeben:You can specify the compiler settings for your application in several ways:

  • EigenschaftenseitenThe property pages

  • Die BefehlszeileThe command line

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

So ändern Sie die Kompilierungseinstellungen im Dialogfeld "Eigenschaftenseiten"To change compile settings from the property pages dialog box

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten.Right-click the project node in Solution Explorer.

  2. Wählen Sie im Kontextmenü den Befehl Eigenschaften aus.Choose Properties from the shortcut menu.

    • 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.In Visual Basic, click the Compile tab in the left pane of the property page, then click the Advanced Compile Options button to display the Advanced Compiler Settings dialog box. Aktivieren Sie die Kontrollkästchen für die Compilereinstellungen, die aktiviert werden sollen.Select the check boxes for the compiler settings you want to enable. Deaktivieren Sie die Kontrollkästchen für die Einstellungen, die deaktiviert werden sollen.Clear the check boxes for settings you want to disable.

    • 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.In C#, click the Build tab in the left pane of the property page, then select the check boxes for the compiler settings you want to enable. Deaktivieren Sie die Kontrollkästchen für die Einstellungen, die deaktiviert werden sollen.Clear the check boxes for settings you want to disable.

So kompilieren Sie instrumentierten Code über die BefehlszeileTo compile instrumented code using the command line

  1. Legen Sie über die Befehlszeile einen bedingten Compilerschalter fest.Set a conditional compiler switch on the command line. Der Compiler integriert Ablaufverfolgungs- oder Debugcode in die ausführbare Datei.The compiler will include trace or debug code in the executable.

    Beispielsweise wird der Ablaufverfolgungscode in eine kompilierte ausführbare Datei aufgenommen, wenn die folgende Compileranweisung über die Befehlszeile eingegeben wird:For example, the following compiler instruction entered on the command line would include your tracing code in a compiled executable:

    Für Visual Basic: Vbc-r:System.dll -d: TRACE = "true" -d: DEBUG = FALSE MyApplication.vbFor 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.csFor 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.To compile more than one application file, leave a blank space between the file names, for example, MyApplication1.vb MyApplication2.vb MyApplication3.vb or MyApplication1.cs MyApplication2.cs MyApplication3.cs.

    Die in den obigen Beispielen verwendeten Anweisungen zur bedingten Kompilierung bedeuten Folgendes:The meaning of the conditional-compilation directives used in the above examples is as follows:

    AnweisungDirective BedeutungMeaning
    vbc Visual Basic-CompilerVisual Basic compiler
    csc C#-CompilerC# compiler
    -r: Verweist auf eine externe Assembly (EXE oder DLL)References an external assembly (EXE or DLL)
    -d: Definiert ein Symbol für bedingte KompilierungDefines a conditional compilation symbol

    Hinweis

    Sie müssen TRACE oder DEBUG mit Großbuchstaben schreiben.You must spell TRACE or DEBUG with uppercase letters. 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.For more information about the conditional compilation commands, enter vbc /? (for Visual Basic) or csc /? (for C#) at the command prompt. Weitere Informationen finden Sie unter Erstellen von der Befehlszeile aus (C#) oder Aufrufen des Befehlszeilencompilers (Visual Basic).For more information, see Building from the Command Line (C#) or Invoking the Command-Line Compiler (Visual Basic).

So führen Sie die bedingte Kompilierung mit #CONST oder #define durchTo perform conditional compilation using #CONST or #define

  1. Geben Sie am Anfang der Quellcodedatei die entsprechende Anweisung für Ihre Programmiersprache ein.Type the appropriate statement for your programming language at the top of the source code file.

    SpracheLanguage AnweisungStatement ErgebnisResult
    Visual BasicVisual Basic #CONST TRACE = true#CONST TRACE = true Aktiviert die AblaufverfolgungEnables tracing
    #CONST TRACE = false#CONST TRACE = false Deaktiviert die AblaufverfolgungDisables tracing
    #CONST DEBUG = true#CONST DEBUG = true Aktiviert das DebuggenEnables debugging
    #CONST DEBUG = false#CONST DEBUG = false Deaktiviert das DebuggenDisables debugging
    C#C# #define TRACE#define TRACE Aktiviert die AblaufverfolgungEnables tracing
    #undefine TRACE#undef TRACE Deaktiviert die AblaufverfolgungDisables tracing
    #define DEBUG#define DEBUG Aktiviert das DebuggenEnables debugging
    #undefine DEBUG#undef DEBUG Deaktiviert das DebuggenDisables debugging

So deaktivieren Sie die Ablaufverfolgung oder das DebuggenTo disable tracing or debugging

Löschen Sie die Compilerdirektive aus dem Quellcode.Delete the compiler directive from your source code.

- oder –- or -

Kommentieren Sie die Compileranweisung aus.Comment out the compiler directive.

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.When you are ready to compile, you can either choose Build from the Build menu, or use the command line method but without typing the d: to define conditional compilation symbols.

Siehe auchSee also