visual-studio visual-studio-2012 msbuild

visual studio - "C: / Microsoft.Cpp.Default.props" no se encontrĂ³



visual-studio visual-studio-2012 (2)

Estos pasos resolvieron mi problema:

  1. Ejecute npm install --global --production windows-build-tools
  2. Ejecutar npm install --save nan
  3. Establezca la variable de entorno VCTargetsPath en C:/Program Files (x86)/MSBuild/Microsoft.Cpp/v4.0/V140

Tengo un proyecto creado en Visual Studio, 2013.

El archivo de proyecto tiene las siguientes propiedades:

ToolsVersion = "12.0", PlatformToolset = v120.

Tengo Visual Studio 2013 y Microsoft Build Tools 2015 instalados. Este proyecto se construyó con éxito utilizando MSBuild 12.0. Al intentar construirlo con MSBuild 14.0, recibo 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 de alguna manera el problema 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/'))


Tardé dos horas en solucionar este problema, pero finalmente terminé.

Lo siguiente resolvió mi problema:

  1. Ejecute esto en un indicador de comando elevado (admin): npm install --global --production windows-build-tools . Si no tiene npm, le recomiendo que lo instale, de lo contrario esto no funcionará.
  2. Cambie la propiedad en el directorio de instalación (en mi caso C:/Program Files (x86)/MSBuild/14.0 ) para su usuario, en lugar de admin. (Propiedades> Seguridad> Avanzada).