Compartilhar via


Como usar eventos de compilação em projetos de MSBuild

Um evento de compilação é um comando que MSBuild é executado em uma fase específica no processo de criação. O evento da construção ocorre antes que a construção; o evento de pré link ocorre antes do início da etapa de link; e o evento de pós-compilação ocorre após o término da compilação bem-sucedida. Um evento de construção só ocorrerá se a etapa associado de compilação ocorre. Por exemplo, o evento do vínculo não ocorre se a etapa de vínculo não é executado.

Cada um dos três eventos de compilação é representado em um grupo de definição de item por um elemento command (<Command>) que é executada e um elemento message (<Message>) que é exibido quando MSBuild executará o evento de compilação. Cada elemento é opcional, e se você especificar o mesmo elemento várias vezes, a última ocorrência terá precedência.

Um elemento opcional de uso-em- construção (<build-eventUseInBuild>) pode ser especificado em um grupo de propriedades para indicar se o evento de compilação é executado. O valor do conteúdo de um elemento de uso-em- construção é true ou false. Por padrão, um evento de compilação é executado a menos que o elemento correspondente uso-em- de construção seja definido como false.

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

Elemento XML

Descrição

PreBuildEvent

Esse evento é executado antes que a construção iniciar.

PreLinkEvent

Esse evento é executado antes que a etapa de link iniciar.

PostBuildEvent

Esse evento é executada após a compilação é concluída.

A tabela a seguir lista cada elemento de uso-em- construção :

Elemento XML

Descrição

PreBuildEventUseInBuild

Especifica se executar o evento da compilação .

PreLinkEventUseInBuild

Especifica se executar o evento do link .

PostBuildEventUseInBuild

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

Exemplo

O exemplo a seguir pode ser adicionada dentro do elemento do projeto do arquivo de myproject.vcxproj criado em Instruções passo a passo: usando MSBuild para criar um projeto do Visual C++. Um evento da construção faz uma cópia de main.cpp; um evento do link faz uma cópia de main.obj; e um evento de pós-compilação faz uma cópia de myproject.exe. Se o projeto é criado usando uma configuração de versão, os eventos de compilação é executado. Se o projeto é criado usando uma configuração de depuração, os eventos da construçã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

Instruções passo a passo: usando MSBuild para criar um projeto do Visual C++

Outros recursos

MSBuild (Visual C++)