No se pueden encontrar las herramientas de compilación para v120 (Platform Toolset = 'v120')

103

Al usar Visual Studio 2012 en Windows 8 x64, aparentemente, esto se debe a que msbuild se movió a .net, pero aún no he visto cómo solucionarlo.

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.
clienthax
fuente
1
Consejo de CLI: para crear cualquier solución con preferencia PlatformToolset, puede anularla así (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(si está en PowerShell, ponga &antes \Progr..). Para VS2015, se convertirá en "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"y /p:PlatformToolset=v140, y así sucesivamente.
cuervo vulcano

Respuestas:

73

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

Está utilizando Visual C ++ 2012, que es v110. v120 significa Visual C ++ 2013.

Entonces, o cambia la configuración del proyecto para usar el conjunto de herramientas v110, o instala Visual Studio 2013 en esta máquina y usa VS2013 para compilarlo.

Lex Li
fuente
70
Pero, pero ... ¡Recibo este error aunque tengo VS 2013 instalado en mi máquina!
Tim Lovell-Smith
5
¿Resolviste esto? Tengo un problema similar. Si construyo desde TFS Team Build, obtengo el mismo error. Sin embargo, puedo construir bien desde VS 2013 IDE y desde un símbolo del sistema VS 2013.
Ike Starnes
Verifiqué la lista de software instalado en los servidores de compilación TFS aquí: listofsoftwareontfshostedbuildserver.azurewebsites.net donde supongo que esto funcionaría (sospecho que esto debería compilarse, pero aún no tengo que probarlo). Observo que VS 2013 no está realmente instalado, solo algunas partes.
Redimido
6
Instalé VS 2013 en el servidor de compilación y todavía tengo el problema.
Canjeado
4
Tenga en cuenta que su solución puede tener varios proyectos. Por lo tanto, verifique las Propiedades para todos ellos haciendo clic con el botón derecho en el proyecto (no en la solución) -> Propiedades de configuración-> General-> Conjunto de herramientas de plataforma (esto es en VS2013)
píxel
84

Si tiene VS2013 instalado y recibe este error, es posible que esté invocando el MSBuild incorrecto. Con VS2013, Microsoft ahora incluye MSBuild como parte de Visual Studio. Consulte esta publicación del blog de Visual Studio para obtener más detalles.

En particular, tenga en cuenta la nueva ubicación de los binarios:

En máquinas de 32 bits, se pueden encontrar en: C: \ Archivos de programa \ MSBuild \ 12.0 \ bin

En máquinas de 64 bits, las herramientas de 32 bits estarán en: C: \ Archivos de programa (x86) \ MSBuild \ 12.0 \ bin

y las herramientas de 64 bits en: C: \ Archivos de programa (x86) \ MSBuild \ 12.0 \ bin \ amd64

MSBuild en %WINDIR%\Microsoft.NET\Framework\no parece reconocer el conjunto de herramientas de la plataforma VS2013 (v120).

Kevin Richardson
fuente
2
Esta respuesta resultó ser la respuesta correcta para mí cuando experimenté el mismo problema descrito en el OP.
Boinst
12
¿Cómo se cambia la ruta a MSBuild?
rharrison33
¿Qué intentas hacer?
Kevin Richardson
2
@ rharrison33 Cuando usé un símbolo del sistema VS2013, se usó la versión correcta de msbuild. La ejecución de un símbolo del sistema VS2012 utilizó la ubicación incorrecta de msbuild. No estoy realmente seguro de por qué VS2013 instaló un símbolo del sistema VS2012, pero es algo a lo que hay que prestar atención ...
Jim Geurts
1
La construcción con el conjunto de herramientas v120 me funciona en un símbolo del sistema VS2012 cuando lo uso C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson
69

si está utilizando Visual 2012, haga clic con el botón derecho en el nombre del proyecto -> propiedades -> propiedades de configuración -> general -> conjunto de herramientas de la plataforma -> Visual Studio 2012 (v110)

Sara
fuente
1
Esto lo solucionó en mi caso. Intenté usar VS2013, luego encontré este problema cuando volví a VS2012. Tenga en cuenta que debe hacer esto para cada proyecto de la solución.
J. Peterson
Esta publicación con una solución y las instrucciones son muy claras y fáciles de seguir. Lástima que el 2012 todavía me dé un montón de errores, después de que solucioné el problema de la v110. Puedo ejecutar exactamente el mismo código C que se ejecuta en 2013 sin problemas, pero 2012 todavía puede lograr encontrar errores. 2012 ralentiza la codificación, por lo que ahora solo uso 2013.
T. Webster
Se cambió el conjunto de herramientas de la plataforma y la versión del SDK de Windows. ¡Trabajó!
Fırat Esmer
7

Para sumar las respuestas de Kevin y Lex:

Tuvimos una situación similar en el trabajo donde tanto los desarrolladores como el servidor de compilación tenían Visual Studio 2013. Nuestra solución tenía un proyecto VS 2013 C ++ y se compilaba bien cuando se construía en la máquina del desarrollador o en el servidor de compilación dentro del IDE. El problema era al activar compilaciones usando definiciones de compilación TFS. Seguíamos usando una plantilla de compilación antigua (versión 11.1) en lugar de la 12.0. Afortunadamente, una simple adición de atributo al archivo xaml de plantilla resolvió el problema. En la parte de la secuencia "Compilar el proyecto", hay un nodo xaml que comienza con

mtbwa:MSBuild CommandLineArgument=....

Puede agregar un atributo "ToolPath" y señalarlo a la ruta correcta del MSBuild.exe que desea invocar, según la respuesta de Kevin. Por ejemplo:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"
Luis
fuente
4

Para sumar a la respuesta de Louis:

Alternativamente, puede usar el atributo ToolVersion="12.0"si está usando Visual Studio 2013 en lugar de usar el ToolPathatributo. Para obtener más información, visite http://msdn.microsoft.com/en-us/library/dd647548.aspx

Por lo tanto, no está obligado a usar la ruta absoluta.

kbisang
fuente
4

Perdí más de 4 horas en esto.

Tengo Visual Studio 2017 Enterprise , uno de los proyectos tiene el siguiente error:

No se pueden encontrar las herramientas de compilación para v120 (Platform Toolset = 'v120')

Para resolver el error anterior, intenté instalar todo a continuación:

Sin embargo, nada de lo anterior funcionó.

Más tarde, instalé Visual Studio 2013 Ultimate , luego todo funcionó bien.

Parece que el Visual Studio más antiguo es imprescindible para resolver esto.

Espero eso ayude.

Manohar Reddy Poreddy
fuente
3

Cuando un proyecto VS2013 C ++ se abre en VS2015, y hay advertencias sobre "Las herramientas de construcción para v120 ... no se puede encontrar", simplemente tiene que editar el archivo .vcxproj y el cambio <PlatformToolset>v120</PlatformToolset>a <PlatformToolset>v140</PlatformToolset>, y cerrar y volver a abrir la solución .

Dennis Schulze
fuente
1

En VS 2012, obtenía "SMB2 no se compilará: Error 1 error MSB8020: No se pueden encontrar las herramientas de compilación para Visual Studio 2010 (Platform Toolset = 'v100'). Para compilar usando las herramientas de compilación v100, haga clic en el menú Proyecto o haga clic con el botón derecho en la solución y luego seleccione "Actualizar proyectos de VC ++ ...". Instale Visual Studio 2010 para compilar con las herramientas de compilación de Visual Studio 2010 ".

Lanzando la precaución al viento, probé la sugerencia: seleccioné la solución en el Explorador de soluciones, luego hice clic en el elemento de menú "Actualizar VC ++". Esto hizo algunas actualizaciones y luego comenzó una compilación que tuvo éxito.

El elemento de menú "Actualizar VC ++" ya no aparece en el menú de la solución.

Tristan Fabrini
fuente
1

Tuve un problema similar cuando eliminé la actualización 5 de la comunidad VS 2013 y cambié a la edición de la comunidad VS 2015

y el problema adquirido en los proyectos de Windows Phone 8.1 donde se quejaba de no tener el conjunto de herramientas msbuild correcto y de que los emuladores no estaban instalados incluso si lo estaban.

Sé que la fuente del problema fue la configuración de la comunidad VS 2013 que dejó la última desinstalación que me estropeó todo a pesar de que el proceso de desinstalación se realizó sin problemas y sin problemas desde el panel de control.

Hice todo lo posible para eliminar los archivos que quedaban, pero siempre quedaba algo.

y lo que solo me solucionó es una nueva instalación de Windows 10 x64, luego instalé la edición comunitaria VS 2015 y eso es todo no más errores para mí y el emulador wp8.1 también funcionó bien !!

en mi caso, ahora estoy completamente seguro de que la configuración de instalación de Visual Studio anterior me ha estropeado todo y, debido a que no encontré ninguna forma y traté de borrar completamente los archivos y configuraciones de la comunidad VS 2013, tuve que pagar el precio y reinstalar mi sistema operativo.

es posible que pueda evitar la reinstalación del sistema operativo si encuentra una manera de borrar completamente los últimos archivos de instalación de Visual Studio.

PD: solo intente esta solución (reinstalación del sistema operativo) después de haber intentado todas las formas posibles primero, luego, si nada funciona y solo entonces ... haga esta solución como último recurso.

Joseph
fuente
Obteniendo este error con una instalación nueva de VS 2015 Community. Microsoft no tiene las rutas correctas para x64.
Michaelangel007
0

En VS2013 para configurar todos los proyectos para corregir las herramientas de compilación, puede hacer clic derecho en la solución en el explorador de soluciones y elegir "Retarget solution". Cambiará todos los proyectos (todo lo que marque con la casilla de verificación en el cuadro de diálogo abierto), por lo que el error desaparecerá.

daniel.bavrin
fuente
Probé eso. No ayuda en mi caso con VS Community 2015.: - /
Michaelangel007
0

En mi caso, hice doble clic en un archivo sln de Visual 2013 y abrí Visual 2012 (en lugar de Visual 2013). Al intentar compilar con Visual 2012, un proyecto que tiene el conjunto de herramientas de la plataforma configurado en "v120" mostró el error mencionado anteriormente. Sin embargo, al reabrir el sln con Visual 2013, el conjunto de herramientas de la plataforma se configuró en "Visual Studio 2013 (v120)", tenga en cuenta el nombre completo esta vez, en realidad hizo el trabajo por mí. El proyecto se compila bien ahora.

usuario1787252
fuente
0

Recibí el mismo error al construir el proyecto USBView en VS2015. Eliminé este error seleccionando la configuración de 'Conjunto de herramientas de plataforma' en "Visual Studio 2015 (v140)" y luego haga clic derecho en la solución (en VS2015) y seleccione 'Retarget Solution' y seleccioné 10.0.10240.0 en ese cuadro de diálogo.

Parece que también existe ProjectUpgradeTool de microsoft, que se supone que convierte proyectos más antiguos para actualizarlos para publicar VS2012 VS, pero no pude ubicar esa herramienta en mi máquina.

Todavía tengo que corregir un nuevo error del vinculador con la ayuda de esto .

zar
fuente
0

Tuve un problema similar. VS 2015 Community (MSBuild 14) construyendo una aplicación c ++, quería usar las herramientas VS 2010 (v100). Todo se redujo dando a msbuild una opción de configuración no válida. Extraño.

Entonces, vuelva a verificar todas esas opciones y parámetros.

Jahmic
fuente
0

Si usa generadores de make como cmake, JUCE, etc., intente establecer un objetivo de versión VS correcto (2013, 2015, 2017) y regenere la solución nuevamente.

DenisKolodin
fuente
0

Estaba enfrentando el mismo problema mientras construía algunos proyectos.

Usé el IDE de Visual Studio 2015, allí estaba funcionando bien, pero mientras proporcionaba una compilación desde el script de PowerShell, proporcionaba un conjunto de herramientas relacionado "No se pueden encontrar las herramientas de compilación para v140 (Platform Toolset = 'v140')". error

Así que finalmente fue cuestión de apuntar a un exe MSBUILD incorrecto para el proyecto respectivo.

Anteriormente estaba apuntando a $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

Y la compilación fue exitosa cuando actualicé el script para que apunte a $ MSBUILD = "C: \ Archivos de programa (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Por lo tanto, para resolver el problema, asegúrese de utilizar MSBUILD correcto.

Sagar Mahewar
fuente