Mam projekt utworzony w Visual Studio 2013.
Plik projektu ma następujące właściwości:
ToolsVersion = "12.0", PlatformToolset = v120.
Mam zainstalowany program Visual Studio 2013 i Microsoft Build Tools 2015. Ten projekt został pomyślnie skompilowany przy użyciu programu MSBuild 12.0. Przy próbie zbudowania go z MSBuild 14.0 pojawia się błąd
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.
Jak rozumiem, problem polega na tym, że zmienna VCTargetsPath nie jest oceniana. Jeśli przed kompilacją określę zmienną VCTargetsPath (z wartością C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V120), problem zostanie rozwiązany.
Jednak takie podejście nie jest zbyt wygodne w przypadku innej ścieżki. Czy można jakoś rozwiązać problem w bardziej optymalny sposób?
Klucz rejestru i jego wartość:
HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))