Почему MSBuild выглядит в C: для Microsoft.СРР.По умолчанию.реквизит вместо c:Program файлы (x86)MSBuild? (ошибка MSB4019)
когда я запускаю msbuild для создания проекта vc2010, я получаю следующую ошибку:
error 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.
- msbuild находится c:Program файл (x86)MSBuild
- HKLMSOFTWAREWow6432NodeMicrosoftMSBuildToolVersionsV4.0 VCTargetsPath значение $(MSBuildExtensionsPath32)Microsoft.СРРВ4.0
- при запуске msbuild / verbosity: diag как хорошая система показывает MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath установить как среда при запуске выпуска
- установка MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath в качестве переменных среды в оболочке не вызывает их отображения как среда при запуске сборки
Исправления Попытка
- удалены .объем 4.5, капитальный ремонт .net версии 4.0
- установить MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath в системе переменная.
похоже, что MSBuildExtensionsPath32 не устанавливается должным образом и установка MSBuildExtensionsPath не помогает
SET MSBuildExtensionsPath="C:Program FilesMSBuild"
пожалуйста, дайте мне знать, если у вас есть какие-либо идеи, что блокирует правильную установку этой переменной.
14 ответов:
Я получил эту проблему при публикации приложения cocos2d-x с помощью их инструмента командной строки, который вызывает MSBuild. Я использую Win 7 64-бит, VS2013 express, cocos2d-x версии 3.3, установлена платформа .NET Framework 4.5.
я исправил проблему, установив следующее Перед запуском cocos.py команда публикации:
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
для тех, кто не следовал запрещенному порядку MS (см. ответ Xv) вы все еще можете решить эту проблему.
MSBuild использует
VCTargetsPathчтобы найти свойства cpp по умолчанию, но не может, потому что в реестре отсутствует это строковое значение.Проверьте строковое значение
- запускаем regedit
- навигатор
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0- проверка
VCTargetsPathключ. Значение должно = "$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"исправить
- запустить regedit Navigator в
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0- Добавить Строковое Значение
VCTargetsPath- установить значение "
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"Примечание:
HKLMрасшифровывается какHKEY_LOCAL_MACHINE.
недавно у меня была такая же проблема, и после установки разных пакетов в другом порядке она просто становилась очень грязной. Тогда я нашел это РЕПО -https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-toolsОн устанавливает Python & VS Build tools, которые необходимы для компиляции большинства модулей узлов. Это работало удовольствие!
установка Microsoft Visual C++ 2010 пакет обновления 1 Обновление компилятора для Windows SDK 7.1 исправлено
MSB4019ошибки, которые я получал, строя на Windows7 x64.в readme этого обновления указано, что рекомендуемый порядок
- Visual Studio 2010
- Windows SDK 7.1
- Visual Studio 2010 SP1
- обновление компилятора Visual C++ 2010 SP1 для Windows SDK 7.1
в 64-разрядных системах MSBuild по умолчанию использует следующие свойства (где C: is SystemDrive):
MSBuildExtensionsPath = C:\Program Files (x86)\MSBuild MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild MSBuildExtensionsPath64 = C:\Program Files\MSBuildЕсли это не так, это означает, что у вас либо есть некоторые пользовательские сторонние переопределения целей, либо ваша установка MSBuild повреждена.
вещи, чтобы попробовать:
- ремонт установки .NET
- применить последний пакет обновления Visual Studio
- Set
MSBuildExtensionsPathвручную, как указано выше (Примечаниеx86часть на 64-битных машины)
установка Microsoft Visual C++ 2010 пакет обновления 1 Обновление компилятора для Windows SDK 7.1 работал для меня. Однако у меня возникли проблемы с обновлением, потому что у меня уже были установлены VS 2010 и VS 2010 SP1. Как уже упоминалось Xv выше, readme.файл htm содержит решения наиболее распространенных проблем установки в разделе "известные проблемы". Я бы следовал инструкциям в readme.htm и перезагрузите компьютер после каждого устранения неполадок попытка, потому что некоторые установки записывают в ваш реестр.
У меня была эта проблема на Visual Studio 2015 edition. Когда я использовал cmake для создания проекта, эта ошибка появилась.
ошибка MSB4019: импортированный проект "D:\Microsoft.СРР.По умолчанию.реквизита" не было нашел
я исправил это, добавив строку
VCTargetsPath
со значением
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4. 0\V140
пути реестра
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0
записи реестра для ключа MSBuild работали нормально для меня. Важно помнить, что это должно быть сделано для 64-разрядных или 32-разрядных ветвей в зависимости от того, какую версию MSBuild вы запускаете. Я бы не рекомендовал использовать переменные среды, так как это может вызвать проблемы в разных версиях MSBuild.
этот файл реестра исправляет это для обоих случаев:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions.0.0] "VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))" "VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\'))" "VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V110\'))" "VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))" "VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V140\'))"
MSBuild в независимом инструменте сборки, который часто поставляется в комплекте с другими инструментами. Возможно, он был установлен на вашем компьютере с .NET (более старые версии), Visual Studio (более новые версии) или даже Team Foundation Build.
MSBuild нужны конфигурационные файлы, компиляторы и т. д. (набор инструментов), который соответствует версии Visual Studio или TFS, которая будет его использовать, а также версии .NET, для которой будет скомпилирован исходный код.
в зависимости от того, как MSBuild был установленные файлы конфигурации могут находиться в одном или нескольких из этих путей.
- C:\Program файлы (x86)\MSBuild\Microsoft.СРР\В4.0\
- C:\Program файлы (x86)\MSBuild\Microsoft.Cpp\v4. 0\V120\
- C:\Program файлы (x86)\MSBuild\Microsoft.Cpp\v4. 0\V140\
как описано в других ответах, элемент реестра и/или переменная среды должны указывать путь к группе инструментов.
- ключ VCTargetsPath под HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
- переменная среды VCTargetsPath.
иногда такая операция, как установка инструмента, оставляет реестр и/или переменную среды, установленную неправильно. Другие ответы - это все варианты их исправления.
единственное, что я должен добавить, это переменная окружения не работала для меня, когда я оставил трейлинг \
Мне жаль говорить...у меня ничего не получалось..только этот метод работал для меня.. установите путь как C:\Program файлы\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0
я столкнулся с этой ошибкой, написав сценарий сборки, который поместил бы MSBuild на %PATH% после рекурсивного копания C:\Windows\Microsoft.NET папка для любого найденного MSBuild.файл EXE. Последним найденным хитом был каталог, который был помещен на путь. Так как ударил
для записи, файла
Microsoft.Cpp.Default.propsможно изменить env varVCTargetsPathи сделать последующие использования этого var неверными. У меня была эта проблема, и я решил ее, установивVCTargetsPath10иVCTargetsPath11к тому же значению, чемVCTargetsPath.Это должно быть адаптировано в соответствии с версией VS, которую вы используете.
Я вижу это в среде VS2017. Мой скрипт сборки вызывает
VsDevCmd.batво-первых, и для решения этой проблемы я установилVCTargetsPathпеременные среды послеVsDevCmdи перед вызовом MSBuild:set VCTargetsPath=%VCIDEInstallDir%VCTargets
Comments