Pessoal,

Essa eu passei durante uma consultoria no cliente. A situação era a seguinte: O Team Build e os agentes estão instalados em máquinas 64bits. Tinha um projeto que precisava ser compilado com algumas informações e dll´s de x86.

Quando mandava rodar normalmente, ele apenas dava um erro falando que não conseguia carregar umas dll´s.

Após fazer um estudo percebi que o msbuild procurava as informações no diretório x64 dos projetos e as informações dentro do arquivo de csproj (que é o arquivo que contém o script de msbuild) mandava procurar dentro do x86. Se eu mudasse essa informação quebrava a compilação na máquina dos Devs e sem ela não funciona no servidor de build. E aí, como resolver ?

Dentro da Build Definition tem um parametro que nós podemos usar justamente para isso.

Como setar o parâmetro:

Vá na sua Build Definition –> Aba Process –> Advanced. Lá tem uma opção chamada: MSBuild Plataform e pronto, todos os seus problemas estão resolvidos! 🙂

image

Por padrão ele vem com a opção Auto, isso significa que ele vai identificar qual é a plataforma do sistema operacional que ele vai rodar e chama o MSbuild.exe daquela plataforma.

Para resolver o problema aqui, simplesmente coloquei a propriedade com o valor X86 e tudo funcionou perfeitamente!

Até a próxima

Claudio Leite

Claudio Leite é consultor de ALM da Lambda3, Visual Studio ALM Ranger, PSD, PSM I e PSM II. Graduado em Ciência da Computação pela Universidade Católica de Petrópolis, MBA e POS-MBA em Gestão de Projetos pela Fundação Getúlio Vargas. Twitter: @claudiobernardo