Ricardo Serradas

Visual Studio ALM in a nutshell

Erro MSB4019 numa Team Build

fazer um comentário »

Numa instancia recém instalada do TFS 2008, onde tudo parecia estar funcionando 100%, encontrei um problema o qual percebi ter pouca referência à respeito.

Criei uma solution de testes para armazenar no Source Control, adicionei projetos, tudo tranqüilo. Depois de tudo, parti para a configuração de um Team Build.

A solução compilava normalmente na máquina client, porém, depois que subi a solução no TFS o team build falhou. Veja a mensagem de erro:

Error MSB4019: The imported project [TargetPath] was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

O erro era vinculado sempre à Web Projects (Web Application, WebService, etc). Isso ocorre porque os targets para aplicações web não estão instaladas no servidor de build.

Existem duas formas de resolver o problema. Uma delas (e a que eu aconselho) é simplesmente instalar o Visual Studio 2008 com as mínimas opções (C# e Visual Web Developer) no servidor de build. O ponto negativo desta solução é que estará consumindo espaço em disco do servidor de build.

A outra opção, se não quiser instalar o VS 2008 no servidor é a seguinte:

- Acesse: MSBuild\Microsoft\VisualStudio\v9.0\WebApplications na máquina client;

- Copie Microsoft.WebApplication.targets para o diretório da solução do projeto;

- Adicione o arquivo como parte da solução e versione-o;

- Edite o arquivo TFSBuild.proj da sua WebApplication usando um editor de texto (normalmente em [TeamProject]/TeamBuildTypes/[SolutionName]Build);

- Encontre a linha que faz o import do WebApplication Target a partir da pasta do MSBuild no Program Files:

<Import Project=”$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TeamBuild\Microsoft.TeamFoundation.Build.targets” />

E substitua por:

<Import Project=”$(SolutionDir)\Microsoft.WebApplication.targets” />

- Salve seu arquivo e suba a nova versão no TFS.

Esta solução nada mais faz do que disponibilizar o arquivo de target dentro da própria solution para que o MSBuild o busque lá dentro. O ponto negativo desta é que para cada solução que você for versionar que tiver um Web Project será necessário versionar uma cópia do arquivo de target no TFS.

Escolher a melhor opção para seu cenário é com você. Experimente!

Um abraço,
Ricardo Serradas

Escrito por Ricardo Serradas

29/09/2009 às 5:07 PM

Publicado em Problema e Solução

Etiquetado com , , ,

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Gravatar
WordPress.com Logo

Please log in to WordPress.com to post a comment to your blog.

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.