У меня есть проект, созданный в Visual Studio, 2013.
Файл проекта имеет следующие свойства:
ToolsVersion = "12,0", PlatformToolset = v120.
У меня установлены Visual Studio 2013 и Microsoft Build Tools 2015. Этот проект успешно строится с использованием MSBuild 12.0. После попытки создать его с помощью MSBuild 14.0 я получаю сообщение об ошибке
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.
Как я понимаю, проблема в том, что переменная VCTargetsPath не получает оценку. Если я укажу переменную VCTargetsPath перед сборкой (со значением C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120), проблема будет решена.
Однако этот подход не очень удобен, если путь отличается. Возможно ли как-то решить проблему более оптимальным образом?
Ключ реестра и его значение:
HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))