No se encontró "C: \ Microsoft.Cpp.Default.props"


81

Tengo un proyecto creado en Visual Studio, 2013.

El archivo del proyecto tiene las siguientes propiedades:

ToolsVersion = "12.0", PlatformToolset = v120.

Tengo instaladas Visual Studio 2013 y Microsoft Build Tools 2015. Este proyecto se compila con éxito con MSBuild 12.0. Al intentar construirlo con MSBuild 14.0, aparece un error

MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. 

Según tengo entendido, el problema es que la variable VCTargetsPath no se evalúa. Si especifico la variable VCTargetsPath antes de la compilación (con el valor C: \ Archivos de programa (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), el problema está resuelto.

Sin embargo, este enfoque no es muy conveniente en caso de que el camino sea diferente. ¿Es posible resolver el problema de alguna manera de una manera más óptima?

La clave de registro y su valor:

HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))

Tras el intento de construirlo con MSBuild 14.0, ¿cómo lo hace exactamente? Probablemente debería llamar vcvars.bat (o equivalente para herramientas de construcción 2015) primero ..
Stijn

De acuerdo con stijn, configure la ruta y las variables de entorno para las compilaciones de la línea de comandos a través de vcvars.bat y verifique si funciona para usted. Para obtener más información sobre cómo establecer la ruta y las variables de entorno para las compilaciones de línea de comandos, consulte: msdn.microsoft.com/en-us/library/f2ccy3wt.aspx
Zhanglong Wu - MSFT

Respuestas:


61

Me tomó dos horas solucionar este problema, pero finalmente terminé.

Lo siguiente resolvió mi problema:

  1. Ejecutar esto en un sistema elevado pronta (admin): npm install --global --production windows-build-tools. Si no tiene npm, le recomiendo instalarlo, de lo contrario, no funcionará.
  2. Cambie la propiedad en el directorio de instalación (en mi caso C:\Program Files (x86)\MSBuild\14.0) a su usuario, en lugar de administrador. (propiedades> Seguridad> Avanzado).

9
Gracias. Solo necesitaba (re) correr npm install -g --production windows-build-tools.
Dan Atkinson

@Nic Szer, ¿puedes explicarme el segundo paso? No puedo entenderlo.
Harshit Agrawal

@NicSzer en mi caso veo Propietario: SISTEMA, ¿qué debo hacer?
Harshit Agrawal

@HarshitAgrawal, debe cambiar quién es el propietario de la carpeta de modo que su usuario sea el propietario, no el SISTEMA
Nic Szerman

@NicSzer gracias por la respuesta. Hice eso, pero ahora tengo nuevos errores. Esta es la primera vez que intento ejecutar el proyecto nativo de reacción en Windows. Necesito ayuda. ¿Podemos conectarnos en la sala de chat de stackoverflow?
Harshit Agrawal

30

Recientemente reinstalé Visual Studio 2017 y encontré este problema al intentar instalar "npm java". La solución para mí es:

  1. establecer la versión de ms en 2017: npm config set msvs_version 2017
  2. establezca la variable de entorno VCTargetsPath en C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. ejecutar la consola de comandos como administrador del sistema

3
npm config set msvs_version 2017este código me salvó las horas. Gracias.
canmustu

@Alex, ¿ VCTargetsya contenía tu directorio Microsoft.Cpp.Default.Props? Tengo el directorio pero falta ese archivo.
starscream_disco_party

@starscream_disco_party sí, Microsoft.Cpp.Default.Props ya está en mi carpeta VCTargets
Alex

22

Estos pasos resolvieron mi problema:

  1. correr npm install --global --production windows-build-tools
  2. correr npm install --save nan
  3. Establezca VCTargetsPathla variable de entorno enC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

2
¿Dónde se encuentra VCTargetsPath?
Harshit Agrawal

Solución perfecta
Hammad ul Hasan

1
@HarshitAgrawal VCTargetsPathes el nombre de la variable de entorno.
Emre Tapcı

El tercer paso solo es necesario en mi caso.
Sergei

10

Para aquellos que la respuesta anterior no funciona, aquí hay otra posible solución a considerar.

Incluso la instalación de herramientas de compilación o VS 2015 no funcionó para mí. Así que intenté instalar a continuación directamente a través de PowerShell (como administrador)

https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1 Comando: choco install visualcpp-build-tools --version 14.0.25420.1

Una vez instalado, configure una variable de entorno VCTargetsPath = C: \ Archivos de programa (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ v140


Usar Chocolatey lo resolvió por mí, ni siquiera configuré la variable de entorno, funcionó de inmediato
Meir Gabay

9

Para aquellos que usan VS 2019:

establecer VCTargetsPath = "C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160"

Editar (septiembre de 2020): a veces requiere una barra invertida al final (como bmiller se menciona a continuación)


1
Esto funcionó para mí. Tenga en cuenta que también necesitaba una barra diagonal inversa al final de la ruta, de lo contrario, la compilación falló al buscar accesorios de plataforma específicos en una subcarpeta.
bmiller

También funcionó para mí, aunque debe asegurarse de haber especificado la versión de VS adecuada (en mi caso, era Community - "C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Microsoft \ VC \ v160 "
g0rski

5

Resolví esto por:

  1. Establezca VCTargetsPathla variable de entorno enC:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. construir usando admin

0

Probé npm install y VCTargetsPath, no todo funciona. Finalmente resuelto después de actualizar Visual Studio a la última versión.


0

Se resuelve instalando Visual Studio Express 2015 para Windows 10 .


Pasar de Express a Pro causó el problema en mi caso. Establezca la variable de entorno VCTargetsPath en C: \ Archivos de programa (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140
Sergei

0

No pude hacer que funcione con todas las sugerencias de esta página

Bajé nodejs a 10.15 y funcionó bien

probablemente no sea la mejor respuesta, pero funciona


0

Resolví el problema cargando la solución en VS 2019 en lugar de hacer doble clic en el nombre de la solución en el Explorador de archivos.


0

Al ejecutar MSBuild fuera de Visual Studio 2019 (migrado desde 2012), tuve este tipo de problemas. Los resolví ejecutando este MSBuild:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild"

(personalícelo según su versión de VS y la arquitectura de destino) en lugar de esta:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

que estaba usando cuando tenía Visual Studio 2012.


-1

Asegúrese de usar --global con el comando para poder usar este paquete en cualquier lugar. Esto me resuelve el problema

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.