У мене є проект, створений у 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\'))