Partilhar via


Como: usar os eventos de compilação em projetos do MSBuild

Um evento de compilação é um comando que MSBuild executa em um determinado estágio no processo de compilação.O pré-compilação evento ocorre antes do início da compilação; o pre-link evento ocorre antes do início de etapa do link; e o pós-compilação evento ocorre após a compilação termina com êxito. Um evento de compilação ocorre somente se a etapa de compilação associado ocorrer.Por exemplo, o evento de pré-vínculo não ocorre se a etapa de link não for executado.

Cada um dos eventos de três compilação é representada por um elemento de comando em um grupo de definições de item (<Command>) que é executado e um elemento de mensagem (<Message>) ou seja exibida, quando MSBuild realiza o evento de compilação.Cada elemento é opcional, e se você especificar o mesmo elemento várias vezes, a última ocorrência tem precedência.

Um recurso opcional uso-em-build elemento (<evento de compilaçãoUseInBuild>) podem ser especificados em um grupo de propriedades para indicar se o evento de compilação é executado.O valor do conteúdo de um uso-em-build elemento está true ou false.Por padrão, um evento de compilação é executado, a menos que seu correspondente uso-em-build elemento está definido como false.

A tabela a seguir lista cada elemento XML do evento de compilação:

Elemento XML

Descrição

PreBuildEvent

Este evento é executado antes do início da compilação.

PreLinkEvent

Este evento é executado antes do início da etapa a link.

PostBuildEvent

Este evento é executado após a conclusão da compilação.

A tabela a seguir lista cada uso-em-build elemento:

Elemento XML

Descrição

PreBuildEventUseInBuild

Especifica se deve executar o pré-compilação evento.

PreLinkEventUseInBuild

Especifica se deve executar o pre-link evento.

PostBuildEventUseInBuild

Especifica se deve executar o pós-compilação evento.

Exemplo

O exemplo a seguir pode ser adicionado dentro do elemento Project do arquivo myproject.vcxproj criado em Passo a passo: Usando o MSBuild para criar um projeto do Visual C++.A pré-compilação evento faz uma cópia de main.cpp; um pre-link evento faz uma cópia de main.obj; e um pós-compilação evento faz uma cópia de myproject.exe.Se o projeto é criado usando uma configuração de lançamento, os eventos de compilação são executados.Se o projeto é criado usando uma configuração de depuração, os eventos de compilação não serão executados.

  <ItemDefinitionGroup>
    <PreBuildEvent>
      <Command>copy $(ProjectDir)main.cpp $(ProjectDir)copyOfMain.cpp</Command>
      <Message>Making a copy of main.cpp </Message>
    </PreBuildEvent>
    <PreLinkEvent>
   <Command>copy $(ProjectDir)$(Configuration)\main.obj $(ProjectDir)$(Configuration)\copyOfMain.obj</Command>
      <Message>Making a copy of main.obj</Message>
    </PreLinkEvent>
    <PostBuildEvent>
   <Command>copy $(ProjectDir)$(Configuration)\$(TargetFileName) $(ProjectDir)$(Configuration)\copyOfMyproject.exe</Command>
      <Message>Making a copy of myproject.exe</Message>
    </PostBuildEvent>
  </ItemDefinitionGroup>
 
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <PreBuildEventUseInBuild>true</PreBuildEventUseInBuild>
    <PreLinkEventUseInBuild>true</PreLinkEventUseInBuild>
    <PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <PreBuildEventUseInBuild>false</PreBuildEventUseInBuild>
    <PreLinkEventUseInBuild>false</PreLinkEventUseInBuild>
    <PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
  </PropertyGroup>

Consulte também

Tarefas

Passo a passo: Usando o MSBuild para criar um projeto do Visual C++

Outros recursos

MSBuild (Visual C++)