msbuild - update - npm error de instalación: "No se pueden encontrar las herramientas de compilación para v120(Platform Toolset=''v120'')"
update node-gyp (5)
Mientras se ejecutaba una npm install
que requería una reconstrucción de node-gyp, se lanzó el siguiente error de compilación:
MSB8020: No se pueden encontrar las herramientas de compilación para v120 (Platform Toolset = ''v120''). Para compilar utilizando las herramientas de compilación v120, instale las herramientas de compilación v120. Alternativamente, puede actualizar a las herramientas actuales de Visual Studio seleccionando el menú Proyecto o haciendo clic derecho en la solución, y luego seleccionando "Retarget solution"
Información del sistema
- Windows 10 (x64)
- Visual Studio 2015
- nodo v0.12.7
- npm v2.11.3
- node-gyp v2.0.1
tl; dr
Use el parámetro msvs_version: npm install --msvs_version=2015
¿Qué pasa si el parámetro msvs_version no funciona?
Si el parámetro msvs_version no funciona, es probable que no tenga instalado un entorno de compilación de Visual C ++ 2015.
Instalar Visual C ++ Build Environment
Opción 1: Visual Studio 2015
- Durante la instalación de VS2015, seleccione "Personalizar". O, si ya ha instalado VS2015, vaya a "Desinstalar o cambiar un programa" de Windows> seleccione VS2015 en la lista> haga clic en "Cambiar"> haga clic en "Modificar"
- Marque la opción "Herramientas comunes para Visual C ++ 2015", en "Lenguajes de programación"> "Visual C ++"
- Finalizar la instalación del VS2015.
Opción 2: Visual C ++ Build Tools 2015
Como alternativa a VS2015, puede instalar Visual C ++ Build Tools 2015 lanzado por Microsoft:
- Durante la instalación de VC ++, seleccione "Personalizar"
- Verifique las opciones de "Windows 8.1 SDK" y "Windows 10 SDK"
- Terminar la instalación de VC ++
Usa msvs_version
Ahora que se ha instalado un entorno de compilación de Visual C ++ 2015, puede indicar a npm que lo use a través del parámetro msvs_version:
- Abre PowerShell
- Use el parámetro msvs_version:
npm install --msvs_version=2015
Opciones de configuración (no es necesario)
Opcionalmente, en lugar de especificar msvs_version en el símbolo del sistema, puede configurar npm para incluir siempre el parámetro msvs_version agregándolo a su npmrc o package.json:
npmrc
Abra PowerShell y ejecute npm config set msvs_version 2015
, que agregará este parámetro a su archivo npmrc de usuario. En adelante, cada vez que ejecute npm install
, como este usuario, se incluirá automáticamente el msvs_version=2015
opcionalmente, puede incluir el indicador global
npm config set msvs_version 2015 --global
si planea iniciar sesión con diferentes cuentas de Windows y desea que esta configuración se aplique a todas las cuentas en la máquina
paquete.json
Modifique el archivo package.json de su proyecto para incluir:
"config": {
"msvs_version": 2015
}
En adelante, cada vez que ejecute npm install
, para este proyecto, se incluirá automáticamente el msvs_version=2015
Revisiones de articulos
- Pasos revisados después de una investigación adicional inspirada en el comentario de Chuck sobre el conjunto de herramientas v120 (gracias @ChuckWalbourn)
- Opciones de configuración añadidas
- Opción de herramientas de compilación VC ++ agregada
- Enlace actualizado de VC ++ Build Tools para lanzamiento oficial
Compartiré esta respuesta ya que ninguna de las otras soluciones resolvió mi problema. Estaba teniendo los mismos errores pero configurando el parámetro msvs:
npm install --msvs_version=2015
No estaba resolviendo el problema. Pude ver que estaba buscando el conjunto de herramientas en el lugar equivocado, sin importar lo que hiciera.
En pocas palabras, aprendí que MSBuild ahora está empaquetado con Visual Studio y ya no está empaquetado con .NET. Efectivamente tuve esta entrada en la variable PATH:
C:/Windows/Microsoft.NET/Framework/v4.0.30319;
y, en consecuencia, se estaba llamando a la versión incorrecta (antigua) de MSBuild. Quité esta entrada y agregué la siguiente ruta que es relevante para VS2015:
C:/Program Files (x86)/MSBuild/14.0/Bin/
Problema resuelto.
Configurar la versión para 2015 no me ayudó. Intenta configurarlo para 2013 en su lugar:
npm config set msvs_version 2013
o
npm config set msvs_version 2015
Quería agregar un comentario a la respuesta de 2Toad pero no me lo permite. Puedes configurar la versión msvs_version globalmente con este comando:
npm config set msvs_version 2015 --global
Esto te ahorra ponerlo en cada objeto de configuración de proyectos.
Ya llevo 2 días instalando todas las versiones de VS ...
npm install oracledb --msvs_version=2015
Devuelve todos los errores:
[..]node-gyp/6.9.1/include/node/v8.h(18): fatal error C1083[..]
Utilizando
npm install oracledb --msvs_version=2013
Devuelve muchas advertencias, compila pero no funciona correctamente después.
[..]warning C4995: ''v8::Value::ToUint32''[..]
Esta es mi peor experiencia con un módulo npm. Que perdida de tiempo :/