As ferramentas de compilação para v120 (Platform Toolset = 'v120') não podem ser encontradas

103

Usando o visual studio 2012 no windows 8 x64, aparentemente, isso é causado pelo msbuild sendo movido para .net, mas eu não vi como consertar ainda.

4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):
error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.
clientela
fonte
1
Dica de CLI: para construir qualquer solução com o preferido PlatformToolset, você pode substituí-lo assim (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(se você estiver no PowerShell, coloque &antes \Progr..). Para VS2015, ele se tornará "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"e /p:PlatformToolset=v140e assim por diante.
Vulcan Raven

Respostas:

73

http://en.wikipedia.org/wiki/Visual_C++

Você está usando o Visual C ++ 2012, que é v110. v120 significa Visual C ++ 2013.

Portanto, você altera as configurações do projeto para usar o conjunto de ferramentas v110 ou instala o Visual Studio 2013 nesta máquina e usa o VS2013 para compilá-lo.

Lex Li
fonte
70
Mas, mas ... Eu recebo este erro mesmo tendo o VS 2013 instalado na minha máquina!
Tim Lovell-Smith
5
Você conseguiu resolver isso? Estou tendo um problema semelhante. Se eu construir a partir do TFS Team Build, obtenho o mesmo erro. No entanto, posso construir bem a partir do IDE do VS 2013 e de um prompt de comando do VS 2013.
Ike Starnes
Verifiquei a lista de software instalado nos servidores de compilação TFS aqui: listofsoftwareontfshostedbuildserver.azurewebsites.net onde presumo que isso funcionaria (suspeito que deve compilar, mas ainda não tentei). Observo que o VS 2013 não está realmente instalado, apenas algumas partes dele.
Resgatado em 1 de
6
Instalei o VS 2013 no servidor de compilação e ainda tenho o problema.
Resgatado em 1 de
4
Observe que sua solução pode ter vários projetos. Portanto, verifique as Propriedades de todos eles clicando com o botão direito do mouse no projeto (não na solução) -> Propriedades de Configuração-> Geral-> Conjunto de Ferramentas da Plataforma (está no VS2013)
pixel
84

Se você tiver o VS2013 instalado e estiver recebendo esse erro, pode estar chamando o MSBuild errado. Com o VS2013, a Microsoft agora inclui o MSBuild como parte do Visual Studio. Consulte esta postagem do blog do Visual Studio para obter detalhes.

Em particular, observe a nova localização dos binários:

Em máquinas de 32 bits, eles podem ser encontrados em: C: \ Arquivos de programas \ MSBuild \ 12.0 \ bin

Em máquinas de 64 bits, as ferramentas de 32 bits estarão em: C: \ Arquivos de programas (x86) \ MSBuild \ 12.0 \ bin

e as ferramentas de 64 bits em: C: \ Arquivos de programas (x86) \ MSBuild \ 12.0 \ bin \ amd64

O MSBuild %WINDIR%\Microsoft.NET\Framework\não parece reconhecer o conjunto de ferramentas da plataforma VS2013 (v120).

Kevin Richardson
fonte
2
Essa resposta acabou sendo a resposta certa para mim quando tive o mesmo problema descrito no OP.
Boinst
12
Como você altera o caminho para o MSBuild?
rharrison33
O que você está tentando fazer?
Kevin Richardson
2
@ rharrison33 Quando usei um prompt de comando VS2013, a versão correta do msbuild foi então usada. A execução de um prompt de comando VS2012 usou o local incorreto do msbuild. Não tenho certeza porque o VS2013 instalou um prompt de comando do VS2012, mas é algo a se observar ...
Jim Geurts
1
Construir com o conjunto de ferramentas v120 funciona para mim em um prompt de comando VS2012 quando eu uso C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson de
69

se você estiver usando o visual 2012, clique com o botão direito do mouse no nome do projeto -> propriedades -> propriedades de configuração -> geral -> conjunto de ferramentas da plataforma -> Visual Studio 2012 (v110)

Sara
fonte
1
Isso resolveu no meu caso. Tentei usar o VS2013, mas tive esse problema quando voltei para o VS2012. Observe que você deve fazer isso para todos os projetos da solução.
J. Peterson
Este post com uma solução e as instruções são tão claras e fáceis de seguir .. Pena que 2012 ainda me dá uma pilha de erros, depois que eu consertei aquele problema da v110 .. Posso executar exatamente o mesmo código C executado em 2013 sem problemas, mas 2012 ainda consegue encontrar erros. 2012 retarda a codificação, e é por isso que uso apenas 2013 agora.
T. Webster
Alteração do conjunto de ferramentas da plataforma e versão do Windows SDK. Funcionou!
Fırat Esmer
7

Para somar às respostas de Kevin e Lex:

Tivemos uma situação semelhante no trabalho, em que tanto os desenvolvedores quanto o servidor de construção tinham Visual Studio 2013. Nossa solução tinha um projeto VS 2013 C ++ e compilou bem quando construída na máquina do desenvolvedor ou no servidor de construção dentro do IDE. O problema era ao disparar compilações usando definições de compilação TFS. Ainda estávamos usando um modelo de construção antigo (versão 11.1) em vez de 12.0. Felizmente, uma simples adição de atributo ao arquivo xaml de modelo resolveu o problema. Na porção de sequência "Compile the Project", há um nó xaml que começa com

mtbwa:MSBuild CommandLineArgument=....

Você pode adicionar um atributo "ToolPath" e apontá-lo para o caminho correto do MSBuild.exe que deseja invocar, com base na resposta de Kevin. Por exemplo:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"
Louis
fonte
4

Para somar a resposta de Louis:

Como alternativa, você pode usar o atributo ToolVersion="12.0"se estiver usando o Visual Studio 2013 em vez de usar o ToolPathAtributo. Detalhes, visite http://msdn.microsoft.com/en-us/library/dd647548.aspx

Portanto, você não é forçado a usar o caminho absoluto.

kbisang
fonte
4

Gastei mais de 4 horas com isso.

Tenho Visual Studio 2017 Enterprise , um dos projetos tem o erro abaixo:

As ferramentas de compilação para v120 (Platform Toolset = 'v120') não podem ser encontradas

Para resolver o erro acima, tentei instalar tudo abaixo:

No entanto, nenhuma das opções acima funcionou.

Posteriormente, instalei o Visual Studio 2013 Ultimate , então tudo funcionou bem.

Parece que o Visual Studio mais antigo é necessário para resolver isso.

Espero que ajude.

Manohar Reddy Poreddy
fonte
3

Quando um projeto VS2013 C ++ é aberto no VS2015 e há avisos sobre "As ferramentas de compilação para v120 ... não podem ser encontradas", eu simplesmente preciso editar o arquivo .vcxproj e mudar <PlatformToolset>v120</PlatformToolset>para <PlatformToolset>v140</PlatformToolset>, fechar e reabrir a solução .

Dennis Schulze
fonte
1

No VS 2012, recebia "SMB2 não compilará: Erro 1 erro MSB8020: As ferramentas de compilação do Visual Studio 2010 (Platform Toolset = 'v100') não foram encontradas. Para compilar usando as ferramentas de compilação v100, clique no menu Projeto ou clique com o botão direito do mouse na solução e selecione "Atualizar projetos VC ++ ...". Instale o Visual Studio 2010 para compilar usando as ferramentas de compilação do Visual Studio 2010. "

Jogando a cautela ao vento, tentei a sugestão: Selecionei a solução no Solution Explorer e cliquei no item de menu "Atualizar VC ++". Isso fez algumas atualizações e, em seguida, iniciou uma compilação que teve sucesso.

O item de menu "Atualizar VC ++" não aparece mais no menu de soluções.

Tristan Fabrini
fonte
1

Tive um problema semelhante quando removi a atualização 5 da comunidade do VS 2013 e mudei para a edição da comunidade do VS 2015

e o problema adquirido em projetos do Windows Phone 8.1, onde reclamava por não ter o conjunto de ferramentas msbuild correto e sobre os emuladores não estarem instalados, mesmo que estivessem.

Eu sei que a origem do problema foram as configurações da comunidade do VS 2013 que foram deixadas pela última desinstalação, o que bagunçou tudo para mim, embora o processo de desinstalação tenha ocorrido sem problemas no painel de controle.

Eu fiz o meu melhor para remover todos os arquivos restantes, mas sempre havia algo sobrando.

e o que só consertou para mim foi uma nova instalação do Windows 10 x64 e depois instalei o VS 2015 Community Edition e pronto! sem mais erros para mim e o emulador wp8.1 funcionou bem também!

no meu caso, agora estou completamente certo de que as configurações de instalação anteriores do Visual Studio bagunçaram tudo para mim e porque não havia nenhuma maneira que eu encontrei e tentei apagar completamente os arquivos e configurações da comunidade do VS 2013, eu tive que pagar o preço por isso e reinstalar meu sistema operacional.

você pode evitar a reinstalação do sistema operacional se encontrar uma maneira de apagar completamente os últimos arquivos de instalação do Visual Studio.

PS: só tente esta solução (reinstalação do SO) depois de tentar todas as maneiras possíveis primeiro, então se nada funcionar e só então ... faça esta solução como último recurso.

Joseph
fonte
Obtendo este erro com uma nova instalação do VS 2015 Community. A Microsoft não possui os caminhos corretos para x64.
Michaelangel007
0

No VS2013, para configurar todos os projetos para corrigir as ferramentas de construção, você pode clicar com o botão direito do mouse na solução no explorador de soluções e escolher "Retargetar solução". Isso mudará todos os projetos (tudo que você verifica com a caixa de seleção na caixa de diálogo aberta), então o erro terá desaparecido.

daniel.bavrin
fonte
Tentei isso. Não ajuda no meu caso com o VS Community 2015.: - /
Michaelangel007
0

No meu caso, cliquei duas vezes em um arquivo sln do Visual 2013 e o Visual 2012 abriu (em vez do Visual 2013). Tentando compilar com Visual 2012, um projeto que tem o Platform Toolset definido como "v120" mostrou o erro mencionado acima. No entanto, reabrindo o sln com o Visual 2013, o conjunto de ferramentas da plataforma foi definido como "Visual Studio 2013 (v120)" - observe o nome completo desta vez -, realmente fez o trabalho para mim. O projeto compila bem agora.

user1787252
fonte
0

Eu estava recebendo o mesmo erro ao construir o projeto USBView no VS2015. Removi esse erro selecionando as configurações de 'Platform Toolset' para "Visual Studio 2015 (v140)" e, em seguida, clique com o botão direito na solução (no VS2015) e selecione 'Retarget Solution' e selecione 10.0.10240.0 nessa caixa de diálogo.

Parece que também existe o ProjectUpgradeTool da microsoft, que supostamente converte projetos mais antigos para atualizar para o VS2012 VS, mas não consegui localizar essa ferramenta na minha máquina.

Eu ainda tenho que corrigir alguns novos erros do vinculador com a ajuda disso .

zar
fonte
0

Eu tive um problema parecido. VS 2015 Community (MSBuild 14) construindo um aplicativo c ++, queria usar ferramentas VS 2010 (v100). Tudo aconteceu dando ao msbuild uma opção de configuração inválida. Estranho.

Portanto, verifique novamente todas essas opções e parâmetros.

Jahmic
fonte
0

Se você usar geradores make como cmake, JUCE, etc., tente definir uma meta de versão VS correta (2013, 2015, 2017) e regenerar a solução novamente.

DenisKolodin
fonte
0

Eu estava enfrentando o mesmo problema ao construir alguns do projeto.

Eu usei o IDE do Visual Studio 2015, lá estava funcionando bem, mas ao fornecer build a partir do script do PowerShell, ele estava fornecendo o conjunto de ferramentas relacionado "As ferramentas de compilação para v140 (Platform Toolset = 'v140') não podem ser encontradas." erro

Então, eventualmente, foi questão de apontar para o exe MSBUILD incorreto para o respectivo projeto.

Anteriormente, eu estava apontando para $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

E a compilação foi bem-sucedida quando atualizei o script para apontar para $ MSBUILD = "C: \ Arquivos de programas (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Portanto, para resolver o problema, certifique-se de usar o MSBUILD correto.

Sagar Mahewar
fonte