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=""$(ProjectDir)PreBuildEvent.bat" "$(ProjectDir)..\" "$(ProjectDir)" "$(TargetDir)"" />
</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.