Requisito não atendido da cidade da equipe: MSBuildTools12.0_x86_Path existe


117

Eu tenho um TeamCity instalado em uma máquina x32 Server2008 windows. Executei a instalação web do .net 4.5. Também copiei os arquivos da minha máquina x64 com base neste artigo, de modo que não precisei instalar o vs2012 (embora eu tenha alterado o caminho para remover o x86 na máquina de 32 bits):

MSBuild na solução TeamCity do Visual Studio 2012

Não consigo fazer com que o agente local execute a compilação que configurei para msbuild em um projeto vs2012 ou vs2010. Eu continuo recebendo:

Requisitos não atendidos: MSBuildTools12.0_x86_Path existe

Reiniciei o servidor várias vezes e reiniciei o agente também. Eu tentei mexer um pouco com as variáveis ​​de caminho, mas não consigo descobrir o que estou perdendo. Também olhei nos Parâmetros de configuração e posso ver estes:

MSBuildTools2.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727

MSBuildTools3.5_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v3.5

MSBuildTools4.0_x86_Path C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319

Como faço para colocar 12,0 lá?


Você ainda está tendo problemas com o TeamCity?
Daniel Hollinrake

O tempo que levei para descobrir isso exigiu que eu colocasse o projeto em espera. Espero voltar a ele na primavera.
archangel76 de

Levei um tempo para fazer tudo funcionar. Acho que a essência disso foi instalar o MSBuild e atualizar o Web Deploy.
Daniel Hollinrake

Respostas:


149

Eu precisei instalar o MSBuild separadamente, depois de reiniciar o agente, a variável estava lá.

(Artigo do MSDN) O MSBuild agora é instalado como parte do Visual Studio, e não como parte do .NET Framework. O número da versão atual do MSBuild é 12.0. Se você deseja instalar o MSBuild separadamente, baixe o pacote de instalação em Download do MSBuild.

editar: o link de resposta foi quebrado. Aqui está o link para o Microsoft Build Tools 2015 (mais recentemente até hoje): https://www.microsoft.com/en-us/download/details.aspx?id=48159


8
Deve-se observar que você precisará do .NET Framework versão 4.5.1 (encontrado aqui: microsoft.com/en-ca/download/details.aspx?id=40779 ) para instalar o MSBuild12.0.
Brandon

37
Para reiniciar o agente: 1. Vá para o servidor de compilação. 2. Execute services.msc no menu iniciar. 3. Encontre o Agente TeamCity, pare o serviço e reinicie-o. Isso pode parecer óbvio para veterinários experientes do TeamCity, mas não para usuários iniciantes como eu. :)
Chaim Eliyah

5
Embora eu tenha o MS Build Tools 2013 instalado, a variável MSBuildTools12.0_x86_Path ainda não está definida e o agente não é executado. Existe uma maneira de configurá-lo manualmente?
bdaniel7

Tive que ir para este diretório e executar vcvars64.bat: C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 14.0 \ VC \ bin \ amd64 Então msbuild funcionou para mim.
user8128167

5
Por padrão, quando usei a detecção automática de arquivo sln e minha solução foi definida para Visual Studio 2013. Alterei para Visual Studio 2015 instalado no agente.
ptittof57

33

Uma resposta um pouco tardia, mas se o seu projeto for do VS 2012 e você estiver usando a etapa de compilação do arquivo de solução autodetectada, editar essa etapa e escolher "Microsoft Visual Studio 2012" no menu suspenso "Visual Studio" corrige esse problema também (e, IMHO, mais corretamente).


2
Nem um pouco tarde! Tive esse problema hoje e mudar a versão do VS para o VS 2015
eliminou a

Isso funcionou para mim novo servidor TeamCity 10 VS2015 (era um projeto antigo de 2013)
Rippo

2
Sim, meu problema era que a versão errada do Visual Studio foi "selecionada automaticamente" por Team City ao escolher detectar automaticamente as etapas de compilação na opção "Criar projeto a partir do URL", então simplesmente fui para a etapa de compilação e alterei o Versão do Visual Studio para corrigir isso. Espero que as pessoas verifiquem sua resposta primeiro, antes de tentar instalar coisas de que possam não precisar na resposta do jmw.
starmandeluxe de

18

Eu tive o mesmo problema e no final descobri que minha etapa de compilação definida para executar o MSBuild estava configurada incorretamente.

Na minha etapa de compilação do MSBuild, a configuração "MSBuild ToolsVersion" foi definida como 12.0 (padrão), o que levou ao erro "Requisitos não atendidos: MSBuildTools12.0_x86_Path existe" em meu sistema. Como não preciso do novo MSBuild 12.0 para executar minha compilação, alterei essa configuração para 4.0 na minha etapa de compilação. Esta versão do MSBuild está instalada corretamente no meu sistema. Isso resolveu o problema para mim.


10

Também estou um pouco atrasado para a festa, mas pensei em compartilhar o seguinte, caso isso ajude alguma pobre alma lá fora.

  • Recebi o erro mencionado acima em uma nova instalação do TeamCity 8.1.4 em uma nova caixa do Windows Server 2012 R2
  • Seguiu as instruções neste tópico e o erro ainda apareceu, apesar de várias reinicializações e reinstalações.
  • Percebi que as informações do agente, como SO e CPU, não apareciam na página de detalhes do agente. Isso indicava que o problema não estava nos pré-requisitos do .NET e MSBUILD, mas sim no fato de o serviço do agente não conseguir ler informações sobre a máquina.
  • O agente estava sendo executado sob uma conta de usuário (com todas as permissões necessárias de acordo com a documentação do TeamCity ). Mas achei que veria o que aconteceria se fosse para Ferramentas de administração> Serviços e alterasse a conta do sistema Log On para Local.
  • Reiniciou o serviço do agente.
  • Grande sucesso.

Alterar o agente para funcionar como serviço local também corrigiu esse problema para mim. Eu não entendo porque. Eu adicionei o usuário que estava usando ao grupo de administradores locais para ver se era um problema de permissões, mas isso não ajudou;
user381624

8

O MSBuild agora faz parte do Visual Studio. Se precisar instalar as ferramentas de compilação em seu agente, mas não quiser instalar o VS, você precisará instalar as novas ferramentas de compilação da Microsoft, que estão disponíveis em http://www.microsoft.com/en-us/download/ details.aspx? id = 40760 .


1
Veja também: link para Build Tools versão 2015 (o link mencionado é 2013 tools).
Jeroen de

E aqui está a versão de 2017 (Ferramentas para Visual Studio 2017 -> Ferramentas de compilação para Visual Studio 2017)
fuglede


2

Eu tive esse problema no meu agente de compilação secundário.

Copiei a pasta MSBuild do pc do agente de compilação principal para o pc do agente de compilação secundário (como fiz com alguns arquivos do Visual Studio conforme descrito aqui: MSBuild na solução TeamCity do Visual Studio 2012 ), em vez de instalar o MSBuild.

Parece, entretanto, que os serviços do agente TeamCity verificam o registro para entradas do MSBuild quando ele é inicializado (não parece fazer isso com os arquivos do Visual Studio que mencionei acima). Como eu simplesmente copiei os arquivos do outro pc, nenhuma entrada MSBuild para v. 12.0 existia, portanto, o TeamCity não descobriu os arquivos MSBuild, embora eles estivessem presentes na pasta Arquivos de programas (x86) \ MSBuild.

Quando instalei as ferramentas do Microsoft Build a partir do link acima http://www.microsoft.com/en-us/download/details.aspx?id=40760 TeamCity encontrei a entrada v. 12.0 no registro e o agente foi capaz de construir os mesmos projetos que o agente primário.

Lembre-se de reiniciar o serviço do agente TeamCity após instalar o MS Build Tools.


1

No meu caso, tenho TeamCity Professional 2018.1 no Windows 2016 Server. Baixei Build Tools for Visual Studio 2017 aqui: https://visualstudio.microsoft.com/downloads/ e selecionei todas as opções para ferramentas de build. Após a instalação, adicionei o MSBuild à variável de ambiente PATH global. C: \ Arquivos de programas (x86) \ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin no meu caso.


0

No meu caso, era uma máquina nova sem visual studio instalado e acabei de restaurar o Teamcity de outra máquina. Então, instalei o visual studio 2013 e resolvi o problema do agente teamcity.


0

Como declarado acima, a etapa de compilação detectada automaticamente provavelmente foi obtida na versão errada do Visual Studio. Altere-o usando a lista suspensa do Visual Studio na seção Etapas da versão na página de configurações de configuração da versão:

insira a descrição da imagem aqui


-1

Parece que resolvi esse problema acessando o registro e excluindo todas as entradas do MSBuild que não eram da versão 12 e reiniciei o agente.

Para fazer isso, vá em Iniciar> Executar e digite Regedit

Em seguida, navegue até a chave:

HKEY_LOCAL_MACHINE> SOFTWARE> Microsoft> MSBuild

Exclua todas as versões, exceto 12.0.

Vá para o próximo nível para ToolsVersions e exclua as versões não 12.0 lá.


1
Esta é uma má ideia, a última coisa que você deve fazer em CI / CD é brincar com registros
goamn
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.