MsBuild – Target
Para a boa compreensão deste artigo, sugiro ler o meu outro artigo chamado “Iniciando com MSBuild”.
Target serve para indicar qual compilação deverá ser executada, isto é, toda informação que estiver dentro de uma determinada Target será executada e tudo que estiver em outras Targets não serão executadas.
Fica mais fácil fazendo o exemplo abaixo.
<?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" > <Target Name="Target1"> <Message Text="Olá Mundo" /> </Target> <Target Name="Target2"> <Message Text="Tchau Mundo" /> </Target> </Project>
No exemplo acima estou criando duas Targets, uma com o nome de Target1 e outra com o nome de Target2. Na hora da compilação o MSBuild irá verificar qual Target foi passada por parâmetro e executar apenas as instruções que estão na Target escolhida.
Digite no prompt do Visual Studio o seguinte comando.
msbuild meuprojeto.proj /t:Target1
Substitua o meuprojeto.proj pelo nome do arquivo xml que você criou.
Após executar este comando você verá a mensagem “Olá Mundo”, isto quer dizer que o msbuild executou apenas as instruções que estão dentro da Target determinada no parâmetro “/t:”.
Se você trocar para Target2 o parâmetro, você verá a mensagem “Tchau Mundo”.
Você também pode definir um Default Target para que não seja necessária a passagem de parâmetro. Para fazer isto basta incluir uma propriedade DefaultTargets com o nome da Target padrão na tag Project. Veja abaixo como fazer.
<?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Target2" > <Target Name="Target1"> <Message Text="Olá Mundo" /> </Target> <Target Name="Target2"> <Message Text="Tchau Mundo" /> </Target> </Project>
Agora você pode digitar o comando do msbuild sem passar por parâmetro a Target.
msbuild meuprojeto.proj
Se tudo der certo, você verá a mensagem “Tchau Mundo”, pois o MsBuild entendeu que você queria utilizar o Target Default.
No próximo artigo irei explicar mais algumas coisas sobre MsBuild. Espero que o post tenha sido útil.