Arquivo
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.
Iniciando com MSBuild
O MSBuild é a plataforma de compilação da Microsoft. Muito útil para realizar algumas automações de build e deploy.
Para verificar como são as instruções que o MSBuild interpreta, basta abrir qualquer projeto no Visual Studio, clicar com a direita em cima do projeto e escolher “Unload Project”. Depois clique com o botão direito novamente e selecione “Edit+Nome do Projeto”. Aparecerá um xml contendo uma série de instruções que o MSBuild utiliza para compilar o projeto.
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.30729</ProductVersion> </PropertyGroup>
Para começar a experimentar o MSBuild crie um arquivo com qualquer nome e extensão, eu sugiro utilizar o nome MeuBuild.prjbuild. Como é um arquivo xml sempre deve começar o enconding e o namespace.
<?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> </Project>
Caso você edite este xml no Visual Studio, após a digitação do namespace você terá o IntelliSense habilitado.
E nada como um “Olá Mundo!” para testar uma aplicação. Insira as linhas abaixo entre as tags Project.
<Target Name="TipoBuild1"> <Message Text="Olá Mundo" /> </Target>
Quando você pede para o MSBuild compilar o projeto, você deve passar por parâmetro o nome do Target que deverá ser executado, assim o MSBuild executará todas as instruções dentro do Target correspondente. Já a tag Message serve para apresentar um texto no output da compilação que, no nosso caso, será “Olá Mundo”.
Agora para verificar se o seu projeto de build está funcionando, vamos testar direto no MSBuild. Abra o prompt do Visual Studio e digite:
msbuild MeuBuild.prjbuild /t:TipoBuild1
Se aparecer a mensagem “Build succeeded”, quer dizer que a compilação foi feita e você pode verificar que a mensagem “Olá Mundo” foi impressa na tela. Você pode perceber que o parâmetro /t: significa que será executado o target correspondente ao parâmetro.
E é isso ai! A proposta deste artigo é apenas iniciar vocês sobre como fazer seus primeiros projetos com o MsBuild.
Espero que o post tenha sido útil e até a próxima.