Condividi tramite


Procedura: compilare in modo condizionale con analisi e debug

Aggiornamento: novembre 2007

Quando si sottopone a debug l'applicazione durante la fase di sviluppo, sia l'output di analisi che l'output di debug vengono inviati alla finestra di output in Visual Studio. Tuttavia, per includere funzionalità di analisi in un'applicazione distribuita, è necessario compilare le applicazioni instrumentate con l'istruzione del compilatore TRACE attivata. In questo modo è possibile analizzare il codice da compilare nella versione di rilascio dell'applicazione. Se non si attiva l'istruzione TRACE, tutto il codice di analisi verrà ignorato durante la compilazione e non sarà incluso nel codice eseguibile da distribuire.

Sia i metodi di debug che di analisi sono dotati di attributi condizionali associati. Se, ad esempio, l'attributo condizionale per l'analisi è true, tutte le istruzioni di analisi verranno incluse all'interno di un assembly, cioè un file con estensione EXE o DLL compilato. Se l'attributo condizionale Trace è false, le istruzioni di analisi non verranno incluse.

In una build è possibile attivare uno degli attributi condizionali Trace o Debug, entrambi gli attributi o nessuno. Esistono quindi quattro tipi di build: Debug, Trace, entrambi o nessuno. Alcune build di rilascio per la distribuzione della produzione non contengono alcun attributo. La maggior parte delle build di debug li contiene entrambi.

È possibile specificare le impostazioni del compilatore per l'applicazione in diversi modi:

  • Le pagine delle proprietà

  • La riga di comando

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

Per modificare le impostazioni di compilazione dalla finestra di dialogo delle pagine delle proprietà

  1. Fare clic con il pulsante destro del mouse sul nodo progetto in Esplora soluzioni.

  2. Scegliere Proprietà dal menu di scelta rapida.

    • In Visual Basic fare clic sulla scheda Compila nel riquadro sinistro della pagina delle proprietà, quindi fare clic sul pulsante Opzioni di compilazione avanzate per visualizzare la finestra di dialogo Impostazioni del compilatore avanzate. Selezionare le caselle di controllo per le impostazioni del compilatore che si desidera attivare. Deselezionare le caselle di controllo per le impostazioni che si desidera disattivare.

    • In C# fare clic sulla scheda Genera nel riquadro sinistro della pagina delle proprietà, quindi selezionare le caselle di controllo per le impostazioni del compilatore che si desidera attivare. Deselezionare le caselle di controllo per le impostazioni che si desidera disattivare.

Per compilare il codice instrumentato utilizzando la riga di comando:

  • Impostare un'opzione del compilatore condizionale sulla riga di comando. Il compilatore includerà il codice di analisi o di debug nell'eseguibile.

    Ad esempio, l'istruzione del compilatore che segue, immessa sulla riga di comando, includerà il codice di analisi in un eseguibile compilato:

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

    Per 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.

    Il significato delle istruzioni di compilazione condizionale utilizzate nell'esempio precedente è riportato di seguito:

    Direttiva

    Significato

    vbc

    Compilatore Visual Basic

    csc

    Compilatore C#

    /r:

    Riferimenti a un assembly esterno (EXE o DLL)

    /d:

    Definizione di un simbolo di compilazione condizionale

    Nota:

    È necessario scrivere TRACE o DEBUG con le lettere maiuscole. Per ulteriori informazioni sui comandi di compilazione condizionale, immettere vbc /? (per Visual Basic) o csc /? (per C#) al prompt dei comandi. Per ulteriori informazioni, vedere Generazione dalla riga di comando (C#) o Utilizzo del compilatore dalla riga di comando (Visual Basic).

Per eseguire la compilazione condizionale tramite #CONST o #define

  • Digitare l'istruzione adatta per il linguaggio di programmazione utilizzato all'inizio del file di codice sorgente.

    Linguaggio

    Istruzione

    Risultato

    Visual Basic

    #CONST TRACE = true

    Attivazione analisi

     

    #CONST TRACE = false

    Disattivazione analisi

     

    #CONST DEBUG = true

    Attivazione debug

     

    #CONST DEBUG = false

    Disattivazione debug

    C#

    #define TRACE

    Attivazione analisi

     

    #undef TRACE

    Disattivazione analisi

     

    #define DEBUG

    Attivazione debug

     

    #undef DEBUG

    Disattivazione debug

Per disattivare l'analisi o il debug

  1. Eliminare l'istruzione del compilatore dal codice sorgente.

    - oppure -

  2. Impostare come commento l'istruzione del compilatore.

    Nota:

    Al momento di avviare la compilazione è possibile scegliere Genera dal menu Genera o utilizzare il metodo della riga di comando senza digitare d: per definire i simboli di compilazione condizionale.

Vedere anche

Attività

Procedura: configurare opzioni di analisi

Procedura: aggiungere istruzioni di analisi al codice dell'applicazione

Procedura: impostare le variabili di ambiente

Procedura: richiamare il compilatore da riga di comando

Concetti

Introduzione alla strumentazione e all'analisi

Opzioni di analisi

Listener di analisi

Altre risorse

Analisi e strumentazione di applicazioni