Я собираю новый сервер сборки TFS и решил использовать VS 2017 Build Tools вместо установки полных версий VS.Когда я пытаюсь построить наши C ++ проекты, он выдает следующую ошибку:
Error MSB4019: The imported project "D:\Microsoft.Cpp.Default.props" was not found.
После многих часов исследований я не приблизился к решению этой проблемы.Я попытался добавить следующие параметры реестра, но это не помогло.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"
Я предполагаю, что установщик Microsoft не работает для этого продукта.Есть ли стандартное исправление этой ошибки или я должен отказаться от своих усилий и просто установить полные версии?
В файле проекта я нашел следующую запись:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Итак, я думаю,это означает, что переменная VSTargetsPath каким-то образом указывает на корень диска D:, но я не знаю, где это значение устанавливается.Наш текущий сервер сборки не имеет набора переменных среды с именем VSTargetsPath, но в нем есть недостающие записи реестра.На нем также установлены полные версии VS.