Share via


Página Eventos de Build, Designer de Projeto (C#)

Use a página Eventos de Build do Designer de Projeto para especificar as instruções de configuração de build. Você também pode especificar as condições sob as quais eventos pós-build são executados. Para obter mais informações, consulte Como: especificar eventos de build (C#) e Como: especificar eventos de build (Visual Basic).

Lista de elementos de interface do usuário

Configuration

Esse controle não é editável nesta página. Para obter uma descrição desse controle, consulte Página de Build, Designer de Projeto (C#).

Plataforma

Esse controle não é editável nesta página. Para obter uma descrição desse controle, consulte Página de Build, Designer de Projeto (C#).

Linha de comando de evento de pré-compilação

Especifica comandos serem executados antes do início do build. Para digitar comandos longos, clique em Editar Pré-Build para exibir a Caixa de Diálogo Linha de Comando de Evento de Pré-Build/Evento de Pós-Build.

Observação

Eventos de pré-build não serão executados se o projeto estiver atualizado e nenhum build será disparado.

Linha de comando de eventos pós-compilação

Especifica comandos a serem executados após o fim do build. Para digitar comandos longos, clique em Editar Pós-Build para exibir a Caixa de Diálogo Linha de Comando de Evento de Pré-Build/Evento de Pós-Build.

Observação

Adicione uma instrução call antes de todos os comandos pós-build que executam arquivos .bat. Por exemplo, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.

Executar o evento pós-compilação

Especifica as condições a seguir para o evento de pós-build ser executado, conforme mostrado na tabela a seguir.

Opção Resultado
Always O evento de pós-build será executado independentemente de o build ser bem-sucedido.
Na compilação bem-sucedida O evento de pós-build será executado se o build for bem-sucedido. Assim, o evento será executado mesmo para um projeto atualizado, desde que o build seja bem-sucedido.
Quando o build atualizar a saída do projeto O evento de pós-build só será executado quando o arquivo de saída do compilador (.exe ou .dll) for diferente do arquivo de saída anterior do compilador. Portanto, um evento de pós-build não será executado se um projeto for atualizado.

No arquivo de projeto

Em versões anteriores do Visual Studio, quando você altera a configuração PreBuildEvent ou PostBuildEvent no IDE, o Visual Studio adiciona uma propriedade PreBuildEvent ou PostBuildEvent ao arquivo de projeto. Portanto, por exemplo, se a configuração da linha de comando PreBuildEvent no IDE for a seguinte:

"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"

então, a configuração do arquivo de projeto será:

<PropertyGroup>
    <PreBuildEvent>"$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)" />
</PropertyGroup>

Para projetos do .NET Core, o Visual Studio 2019 (e o Visual Studio 2017 em atualizações mais recentes) adiciona um destino do MSBuild chamado PreBuild ou PostBuild para configurações de PreBuildEvent e PostBuildEvent. Esses destinos usam os atributos BeforeTargets e AfterTargets, os quais o MSBuild reconhece. Por exemplo, para o exemplo anterior, o Visual Studio agora gera o seguinte código:

<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
    <Exec Command="&quot;$(ProjectDir)PreBuildEvent.bat&quot; &quot;$(ProjectDir)..\&quot; &quot;$(ProjectDir)&quot; &quot;$(TargetDir)&quot;" />
</Target>

Para um evento pós-build, use o nome PostBuild e defina o atributo AfterTargets como PostBuildEvent.

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
   <Exec Command="echo Output written to $(TargetDir)" />
</Target>

Observação

Essas alterações de arquivo de projeto foram feitas para dar suporte a projetos no estilo SDK. Se você estiver migrando um arquivo de projeto do formato antigo para o formato de estilo SDK manualmente, deverá excluir as propriedades PreBuildEvent e PostBuildEvent e substituí-las por destinos PreBuild e PostBuild, conforme mostrado no código anterior. Para saber se o projeto é um projeto no estilo SDK, confira Verificar o formato do projeto.

Confira também