Como: Use eventos compilação em projetos do MSBuild
Um evento de compilação é um comando que MSBuild executa em um determinado estágio do 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 com êxito termina. Um evento de compilação ocorre somente se a etapa de compilação associado ocorre. 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 em um grupo de definições de item por um elemento de comando (<Command>) que é executado e um elemento de mensagem (<Message>) ou seja exibido 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 na compilação elemento (<evento de compilaçãoUseInBuild>) podem ser especificados em um grupo de propriedade para indicar se o evento de compilação é executado. O valor do conteúdo de um uso na compilação elemento está true ou false. Por padrão, um evento de compilação é executado, a menos que seu correspondente uso na compilação 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 de link. |
PostBuildEvent |
Este evento é executado após a conclusão da compilação. |
A tabela a seguir lista cada uso na compilação 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 Demonstra Passo a passo: Usando o MSBuild para criar um projeto do Visual C++. A pré-compilação evento faz uma cópia do main.cpp; um pre-link evento faz uma cópia do main.obj; e um pós-compilação evento faz uma cópia do 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 sã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
Demonstra Passo a passo: Usando o MSBuild para criar um projeto do Visual C++