Como: compilar condicionalmente com Trace e Debug

Enquanto você estiver depurando um aplicativo durante o desenvolvimento, a saída de rastreamento e de depuração é enviada para a janela de Saída no Visual Studio. No entanto, para incluir recursos de rastreamento em um aplicativo implantado, compile os aplicativos instrumentados com a diretiva do compilador TRACE habilitada. Isso permite que o código de rastreamento seja compilado na versão de lançamento do aplicativo. Se você não habilitar a diretiva TRACE, todo o código de rastreamento será ignorado durante a compilação e não será incluído no código executável que será implantado.

Os métodos de rastreamento e de depuração têm atributos condicionais associados. Por exemplo, se o atributo condicional do rastreamento for true, todas as instruções de rastreamento serão incluídas em um assembly (um arquivo .exe ou .dll compilado); se o atributo condicional de Trace for false, as instruções de rastreamento não serão incluídas.

É possível ativar o atributo condicional Trace ou Debug em um build, ambos ou nenhum. Portanto, há quatro tipos de build: Debug, Trace, ambos ou nenhum. Alguns builds de versão para implantação de produção podem não conter nenhum dos dois; a maioria dos builds de depuração contém ambos.

É possível especificar as configurações do compilador para o aplicativo de várias maneiras:

  • As páginas de propriedades

  • A linha de comando

  • #CONST (para o Visual Basic) e #define (para o C#)

Para alterar as configurações de compilação na caixa de diálogo das páginas de propriedades

  1. Clique com o botão direito do mouse no nó do projeto no Gerenciador de Soluções.

  2. Escolha Propriedades no menu de atalho.

    • No Visual Basic, clique na guia Compilar no painel esquerdo da página de propriedades e, em seguida, clique no botão Opções Avançadas de Compilação para exibir a caixa de diálogo Configurações Avançadas do Compilador. Marque as caixas de seleção para as configurações do compilador que você deseja habilitar. Desmarque as caixas de seleção das configurações que você deseja desabilitar.

    • No C#, clique na guia Compilar no painel esquerdo da página de propriedades e, em seguida, marque as caixas de seleção para as configurações do compilador que você deseja habilitar. Desmarque as caixas de seleção das configurações que você deseja desabilitar.

Para compilar um código instrumentado usando a linha de comando

  1. Defina uma opção de compilador condicional na linha de comando. O compilador incluirá o código de rastreamento ou de depuração no executável.

    Por exemplo, a seguinte instrução do compilador inserida na linha de comando incluirá o código de rastreamento em um executável compilado:

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

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

    Dica

    Para compilar mais de um arquivo de aplicativo, deixe um espaço em branco entre os nomes de arquivo, por exemplo, MyApplication1.vb MyApplication2.vb MyApplication3.vb ou MyApplication1.cs MyApplication2.cs MyApplication3.cs.

    O significado das diretivas de compilação condicional usadas nos exemplos acima é o seguinte:

    Diretiva Significado
    vbc compilador do Visual Basic
    csc Compilador C#
    -r: Referencia um assembly externo (EXE ou DLL)
    -d: Define um símbolo de compilação condicional

    Observação

    É necessário escrever TRACE ou DEBUG com letras maiúsculas. Para obter mais informações sobre os comandos de compilação condicional, insira vbc /? (para o Visual Basic) ou csc /? (para o C#) no prompt de comando. Para obter mais informações, consulte Compilando por meio da linha de comando (C#) ou Invocando o compilador de linha de comando (Visual Basic).

Para executar a compilação condicional usando #CONST ou #define

  1. Digite a instrução apropriada para a linguagem de programação na parte superior do arquivo de código-fonte.

    Linguagem Instrução Result
    Visual Basic #CONST TRACE = true Habilita o rastreamento
    #CONST TRACE = false Desabilita o rastreamento
    #CONST DEBUG = true Habilita a depuração
    #CONST DEBUG = false Desabilita a depuração
    C# #define TRACE Habilita o rastreamento
    #undef TRACE Desabilita o rastreamento
    #define DEBUG Habilita a depuração
    #undef DEBUG Desabilita a depuração

Para desabilitar o rastreamento ou a depuração

Exclua a diretiva do compilador do código-fonte.

- ou -

Comente a diretiva do compilador.

Observação

Quando você estiver pronto para compilar, escolha Compilar no menu Compilar ou use o método de linha de comando, mas sem digitar o d: para definir símbolos de compilação condicional.

Confira também