Procedura: compilare in modo condizionale con traccia e debugHow to: Compile Conditionally with Trace and Debug

Quando si sottopone a debug l'applicazione durante la fase di sviluppo, sia l'output di tracciatura che l'output di debug vengono inviati alla finestra di output in Visual Studio.While you are debugging an application during development, both your tracing and debugging output go to the Output window in Visual Studio. Tuttavia, per includere funzionalità di tracciatura in un'applicazione distribuita, è necessario compilare le applicazioni instrumentate con la direttiva del compilatore TRACE abilitata.However, to include tracing features in a deployed application, you must compile your instrumented applications with the TRACE compiler directive enabled. In questo modo è possibile tracciare il codice da compilare nella versione di rilascio dell'applicazione.This allows tracing code to be compiled into the release version of your application. Se non si abilita la direttiva TRACE, tutto il codice di tracciatura verrà ignorato durante la compilazione e non sarà incluso nel codice eseguibile da distribuire.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.

Sia i metodi di debug che di tracciatura sono dotati di attributi condizionali associati.Both the tracing and debugging methods have associated conditional attributes. Ad esempio, se l'attributo condizionale per la traccia è true, tutte le istruzioni di traccia verranno incluse all'interno di un assembly, ovvero un file EXE o DLL compilato. Se l'attributo condizionale Trace è false, le istruzioni di traccia non verranno incluse.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.

In una build è possibile attivare uno degli attributi condizionali Trace o Debug, entrambi gli attributi o nessuno.You can have either the Trace or Debug conditional attribute turned on for a build, or both, or neither. Esistono quindi quattro tipi di build: Debug, Trace, entrambi o nessuno.Thus, there are four types of build: Debug, Trace, both, or neither. Alcune build di rilascio per la distribuzione della produzione non contengono alcun attributo.Some release builds for production deployment might contain neither; most debugging builds contain both.

Le impostazioni del compilatore per l'applicazione possono essere specificate in diversi modi:You can specify the compiler settings for your application in several ways:

  • Pagine delle proprietàThe property pages

  • Riga di comandoThe command line

  • #CONST (per Visual Basic) e #define (per C#)#CONST (for Visual Basic) and #define (for C#)

Per modificare le impostazioni di compilazione dalla finestra di dialogo delle pagine delle proprietàTo change compile settings from the property pages dialog box

  1. Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni.Right-click the project node in Solution Explorer.

  2. Scegliere Proprietà dal menu di scelta rapida.Choose Properties from the shortcut menu.

    • In Visual Basic fare clic sulla scheda Compila nel riquadro sinistro della pagina delle proprietà e quindi fare clic sul pulsante Opzioni di compilazione avanzate per visualizzare la finestra di dialogo Impostazioni del compilatore avanzate.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. Selezionare le caselle di controllo per le impostazioni del compilatore che si vogliono attivare.Select the check boxes for the compiler settings you want to enable. Deselezionare le caselle di controllo per le impostazioni che si vogliono disabilitare.Clear the check boxes for settings you want to disable.

    • In C# fare clic sulla scheda Compila nel riquadro sinistro della pagina delle proprietà e quindi selezionare le caselle di controllo per le impostazioni del compilatore che si vogliono abilitare.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. Deselezionare le caselle di controllo per le impostazioni che si vogliono disabilitare.Clear the check boxes for settings you want to disable.

Per compilare il codice instrumentato usando la riga di comandoTo compile instrumented code using the command line

  1. Impostare un'opzione del compilatore condizionale sulla riga di comando.Set a conditional compiler switch on the command line. Il compilatore includerà il codice di traccia o di debug nell'eseguibile.The compiler will include trace or debug code in the executable.

    Ad esempio, l'istruzione del compilatore che segue, immessa sulla riga di comando, includerà il codice di tracciatura in un eseguibile compilato:For example, the following compiler instruction entered on the command line would include your tracing code in a compiled executable:

    Per 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

    Per c#: csc-r:System.dll -d: traccia -d: DEBUG = FALSE MyApplication.csFor C#: csc -r:System.dll -d:TRACE -d:DEBUG=FALSE MyApplication.cs

    Suggerimento

    Per compilare più file dell'applicazione, lasciare uno spazio vuoto tra i nomi dei file, ad esempio: MyApplication1.vb MyApplication2.vb MyApplication3.vb o 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.

    Il significato delle direttive di compilazione condizionale usate nell'esempio precedente è riportato di seguito:The meaning of the conditional-compilation directives used in the above examples is as follows:

    DirettivaDirective SignificatoMeaning
    vbc Visual Basic (compilatore)Visual Basic compiler
    csc Compilatore C#C# compiler
    -r: Riferimenti a un assembly esterno (EXE o DLL)References an external assembly (EXE or DLL)
    -d: Definizione di un simbolo di compilazione condizionaleDefines a conditional compilation symbol

    Nota

    È necessario scrivere TRACE o DEBUG con le lettere maiuscole.You must spell TRACE or DEBUG with uppercase letters. Per altre informazioni sui comandi di compilazione condizionale, immettere vbc /? (per Visual Basic) o csc /? (per C#) al prompt dei comandi.For more information about the conditional compilation commands, enter vbc /? (for Visual Basic) or csc /? (for C#) at the command prompt. Per altre informazioni, vedere Compilazione dalla riga di comando (C#) o Utilizzo del compilatore dalla riga di comando (Visual Basic).For more information, see Building from the Command Line (C#) or Invoking the Command-Line Compiler (Visual Basic).

Per eseguire la compilazione condizionale con #CONST o #defineTo perform conditional compilation using #CONST or #define

  1. Digitare l'istruzione adatta per il linguaggio di programmazione usato all'inizio del file di codice sorgente.Type the appropriate statement for your programming language at the top of the source code file.

    LinguaggioLanguage IstruzioneStatement RisultatoResult
    Visual BasicVisual Basic #CONST TRACE = true#CONST TRACE = true Abilita la tracciaEnables tracing
    #CONST TRACE = false#CONST TRACE = false Disabilita la tracciaDisables tracing
    #CONST DEBUG = true#CONST DEBUG = true Attiva il debugEnables debugging
    #CONST DEBUG = false#CONST DEBUG = false Disabilita il debugDisables debugging
    C#C# #define TRACE#define TRACE Abilita la tracciaEnables tracing
    #undef TRACE#undef TRACE Disabilita la tracciaDisables tracing
    #define DEBUG#define DEBUG Attiva il debugEnables debugging
    #undef DEBUG#undef DEBUG Disabilita il debugDisables debugging

Per disabilitare la traccia o il debugTo disable tracing or debugging

Eliminare la direttiva del compilatore dal codice sorgente.Delete the compiler directive from your source code.

- oppure -- or -

Impostare come commento la direttiva del compilatore.Comment out the compiler directive.

Nota

Al momento di avviare la compilazione è possibile scegliere Compila dal menu Compila o usare il metodo della riga di comando senza digitare d: per definire i simboli di compilazione condizionale.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.

Vedere ancheSee Also

Traccia e strumentazione di applicazioniTracing and Instrumenting Applications
Procedura: Creare, inizializzare e configurare opzioni di tracciaHow to: Create, Initialize and Configure Trace Switches
Opzioni di tracciaTrace Switches
Listener di tracciaTrace Listeners
Procedura: aggiungere istruzioni di traccia al codice dell'applicazioneHow to: Add Trace Statements to Application Code
Procedura: Impostare le variabili di ambiente per la riga di comando di Visual StudioHow to: Set Environment Variables for the Visual Studio Command Line
Procedura:Richiamare il compilatore da riga di comandoHow to: Invoke the Command-Line Compiler