Partilhar via


Como: Compilar condicionalmente com rastreamento e depuração

Nota

Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.

Enquanto você está depurando um aplicativo durante o desenvolvimento, tanto o rastreamento quanto a saída de depuração vão para a janela Saída no Visual Studio. No entanto, para incluir recursos de rastreamento em um aplicativo implantado, você deve compilar seus aplicativos instrumentados com a diretiva de compilador TRACE habilitada. Isso permite que o código de rastreamento seja compilado na versão de lançamento do seu 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 você implantará.

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

Você pode ter o atributo condicional Trace ou Debug ativado para uma compilação, ou ambos, ou nenhum. Assim, existem quatro tipos de compilação: Depurar, Rastrear, ambos ou nenhum. Algumas compilações de versão para implantação de produção podem não conter nenhuma das duas; A maioria das compilações de depuração contém ambos.

Você pode especificar as configurações do compilador para seu aplicativo de várias maneiras:

  • As páginas de propriedades

  • A linha de comando

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

Para alterar as configurações de compilação da caixa de diálogo de 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 verificação das definições que pretende desativar.

    • Em C#, clique na guia Construir no painel esquerdo da página de propriedades e marque as caixas de seleção das configurações do compilador que você deseja habilitar. Desmarque as caixas de verificação das definições que pretende desativar.

Para compilar código instrumentado usando a linha de comando

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

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

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

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

    Gorjeta

    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 de C#
    -r: Faz referência a um assembly externo (EXE ou DLL)
    -d: Define um símbolo de compilação condicional

    Nota

    Você deve soletrar TRACE ou DEBUG com letras maiúsculas. Para obter mais informações sobre os comandos de compilação condicional, digite vbc /? (para Visual Basic) ou csc /? (para C#) no prompt de comando. Para obter mais informações, consulte Criando a partir 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 sua linguagem de programação na parte superior do arquivo de código-fonte.

    Idioma Declaração Result
    Visual Basic #CONST TRACE = verdadeiro Permite o rastreamento
    #CONST TRACE = falso Desabilita o rastreamento
    #CONST DEBUG = verdadeiro Permite a depuração
    #CONST DEBUG = falso Desabilita a depuração
    C# #define TRACE Permite o rastreamento
    #undef TRACE Desabilita o rastreamento
    #define DEPURAR Permite a depuração
    #undef DEPURAR Desabilita a depuração

Para desativar o rastreamento ou a depuração

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

- ou -

Comente a diretiva do compilador.

Nota

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

Consulte também