Continuando a série de posts sobre Team Foundation Server 2010 hoje vou descrever como configurar o build automático de uma aplicação usando o TFS 2010 e o Visual Studio 2010, então vamos lá…
1) Configurando TFS Build
Se em seu projeto você tentar configurar um novo build e receber a mensagem abaixo, é porque o Build do TFS não está configurado no servidor
A configuração do TFS Build segue o padrão Next, Next, Next, Finish, para configurar o build entre no Team Foundation Server Administration Console e selecione a opção Build Configuration -> Configure Installed Features
Nessa tela tem uma descrição da configuração, Clique em Start Wizard
Nessa tela é apenas de início, clique em Next
Agora é apresentado a sua collection onde será configurado o Build, selecione a collection e clique em Next
Vamos criar a quantidade de agentes, o padrão é 1, clique em Next
Selecione a conta que vai executar o serviço de Build, e em qual porta ela vai ser executada, lembre que essa porta tem que estar liberada em seu Firewall, clique em Next
Para confirmar as configurações, clique em Next
O TFS vai verificar as configurações, clique em Configure
Processo de instalação
Mensagem de sucesso
Veja que agora na opção Build Configuration aparace nosso Controller e nosso Agente
2) Criando um novo Build
Agora vamos configurar o nosso projeto para usar o Build do TFS, abra seu projeto no TFS e clique com o botão direito sobre a opção Builds e selecione a opção New Build Definition
Será aberta uma nova aba no Visual Studio para configurar o nosso Build, clique em General e adicione um nome e uma descrição
Agora clique em Triger e vamos selecionar como nosso build será acionado
Temos algumas opções para acionar nosso Build
- Manual – Será executado manualmente por um usuário acessando o Visual Studio
- Continuous Integration - Sempre que um Check-in é efetuado o build é executado, nesse caso é fácil descobrir quem quebrou o Build ( Who broke the build?)
- Rolling Builds - É parecido com o Continuous Integration, porém ele reúne vários Check-ins e executa o build, também podemos configurar para ser executado em um determinado intervalo
- Gated Check-In – Também é parecido com o Continuous Integration, porém quando o desenvolvedor realizar um Check-in uma janela irá aparecer conforme abaixo
Quando o desenvolvedor clicar em Build Changes o TFS cria uma Shelveset com os arquivos alterados o TFS Build faz um merge do código fonte, realiza o Build e se tudo ocorrer bem realizar o Check-in para o source control
- Schedule – Podemos agendar para quando queremos o nosso build, todos os dias, todas quartas-feiras, em uma determinada hora, etc…
Agora clique em Workspace, onde vamos configurar qual source cntrol a ser executado o Build
Agora clique em Build Defaults e configure o diretório para onde deve ser copiado o Build, deve ser um diretório compartilhado na rede
Agora clique em Process e selecione os itens que vamos adicionar no build, que deve ser a nossa solution (.sln)
Clique em Add e selecione a solution do seu projeto
Agora é só salvar o build
3) Executando o Build
Como configuramos nosso build para ser iniciado Manualmente vamos executar nosso Build, clique no buil que acabamos de criar e selecione a opção Queue New Build
Na janela que abriu podemos configurar mais algumas opções, clique em Queue
Uma nova janela irá se abrir no Visual Studio como status do nosso build
Quando o build for concluído o status deve ficar conforme a imagem abaixo.
Para verificar os arquivos gerados temos que acessar a pasta compartilhada que configuramos anteriormente (\\tfs-2010\build) e acessar a pasta _PublishedWebsites
4) Erros Conhecidos
Alguns erros que ocorreram comigo durante a criação desse POST
Erro 1: MSB4019
Resolução
Copiar a pasta C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications da sua máquina local para o servidor de build
Erro 2: MSB3245
Resolução
Como meu projeto era é em ASP NET MVC 3 tive que instalar no servidor de Build
5) Boas Práticas
A Microsoft recomenda que o Build Service seja instalado em uma máquina separada da camada de aplicação do TFS, para melhor performance e também o servidor de Build deve possuir todos os assymblys referenciado em seu projeto
Qualquer dúvida, problema, sugestão deixe seu comentário!
Aquele Abraço!




























Leandro, ontem tive o mesmo problema relatado, por vc.Consegui resolver realizando os mesmos passos que vc relatou.
bom tutorial
abraços
Valeu Wagner!!
Leandro,
Sou novo no uso do tfs,
e estou com um missão de criar uma arquitetura para tfs e migrar alguns projetos em asp III e visual studio 2005.
vc tem alguma sugestão.
Att.
Machado
Henrique,
O que vc quer migrar para o TFS, SourceControl? WorkItem? Build?
Vocês ja usam o TFS?
Fico no aguardo
att,
Leandro Prado
Leandro,
Apenas o SourceControl.
Já instalei o TFS e Configurei.
Fiz todo o mapeamento e dei as permissões necessarias.
Minha dúvida agora seria com relação a Build para esse Arquivos.
Será que é possivel configura biuld.
Aguardo.
Henrique
Henrique,
Não compreendi sua dúvida…
Para ter o Build Automático, você precisa de um servidor de Build, pode ser separado (recomendado) ou o mesmo do TFS, e configurar seu Build em seu projeto
att,
Leandro Prado
Leandro,
Estou trabalhando com Asp 3.
Será que consigo configurar as versões de deploy para publicação.
Ou apenas só será possivel fazer o versionamento.
Aguardo
Ok.
A questão é o seguinte:
Minha dúvida e com relação a configuração de build? mas para arquivos que usam o Asp classico, ( famoso ASPIII), a configuração funciona da mesma forma.
o responsável vai conseguir fazer um deploy da aplicação?
Henrique
Eu já vi funcionando o build automático de aplicações ASP 3 com TFS 2010, porém eu nunca configurei esse tipo de build
Vou estar pesquisando um pouco mais sobre esse assunto para poder te dar mais detalhes.. se vc também tiver alguma dica favor me avisar
att,
Leandro Prado
Olá Leandro,
Vc teve experiência em criar um build para soluções com strongname? Os projetos da minha solução estão utilizando uma chave, porém quando vc esta na máquina local, vc consegue importar a chave usando o comando sn -i (não lembro a sintaxe toda) ai blz.
Porém, no servidor de build não sei em qual momento rodar o comando, alias, no servidor nem existe o sn.exe, estava pensando em copiar para lá e rodar em algum step inicial, já se deparou em uma situação assim?
Alex,
Eu nunca cheguei a usar StrongName, então não sei lhe dizer o que pode estar acontecendo
att,
Leandro Prado