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\'))