Инструменты сборки VS 2017 не работают с ошибкой MSB4019: импортированный проект "D: \ Microsoft.Cpp.Default.props" не найден - PullRequest
0 голосов
/ 24 мая 2018

Я собираю новый сервер сборки 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.

1 Ответ

0 голосов
/ 24 мая 2018

VS 2017 Инструменты сборки не работают с ошибкой MSB4019: не найден импортированный проект «D: \ Microsoft.Cpp.Default.props»

Попытка явно передать VCTargetsPath каксвойство msbuild из конфигурации вашей сборки:

  1. Изменить определение сборки для сборки.

  2. Перейдите на вкладку процесса.

  3. В разделе «Дополнительно» задайте в аргументах MSBuild следующее свойство:

    /p:VCTargetsPath="C:\Program Files (x86)\Microsoft Visual Studio\2017\xxx\Common7\IDE\VC\VCTargets\"

  4. Сохраните определение сборки.

Примечание: Вы должны изменить значение VCTargetsPath на местоположение папки VCTargets.

Или передайте VisualStudioVersion как свойство в msbuild: /p:VisualStudioVersion=15.0

Если вас интересует значение $(VCTargetsPath), вы можете проверить следующие темы для получения более подробной информации:

Можетнайти записи реестра для Visual Studio 2017

Visual Studio Locator

За эти годы Visual Studio может быть обнаружен с использованием ключей реестра, но с недавними изменениями в моделях развертывания и расширения требуется новый метод для обнаружения возможно более одного раза установленного экземпляра .Эти изменения упрощают более быструю установку по умолчанию, дополняемую установкой по требованию других рабочих нагрузок и компонентов.

vswhere предназначен для распространяемого однофайлового исполняемого файла, который можно использовать при сборке или развертываниисценарии, чтобы найти, где Visual Studio - или другие продукты семейства Visual Studio - расположены .Например, если вы знаете относительный путь к MSBuild, вы можете найти корень установки Visual Studio и объединить пути, чтобы найти то, что вам нужно.

Вы можете использовать разные форматы для информации, основанной на том, что ваши скриптыможет потреблять, включая простой текст, JSON и XML.Запросы извлечения могут быть приняты и для других распространенных форматов.

vshere включен в установщик начиная с Visual Studio 2017 версии 15.2 и новее и может быть найден в следующем расположении:% ProgramFiles (x86)% \Microsoft Visual Studio \ Installer \ vswhere.exe.

...