Это известная проблема, описанная здесь: https://community.embarcadero.com/article/technical-articles/16202-msbuildtoolspath-is-not-specified-for-the-toolsversion
Эта ошибка вызвана неправильными значениями в реестре. В ОС 32 запустите regedit и перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild. В 64-разрядной ОС запустите regedit и перейдите в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild. Сначала создайте резервную копию этого ключа реестра, выбрав File | Экспорт. Затем посмотрите на числа под ключом ToolsVersions. Удалите любой номер, не найденный на уровне MSBuild. ... Есть неподтвержденные данные, свидетельствующие о том, что этот дисбаланс ключей реестра вызван удалением некоторых версий Visual Studio, но в настоящее время это не подтверждено.
Поскольку я устанавливал/удалял различные версии Visual Studio (включая предварительные версии), думаю, это действительно было вызвано этим
Ошибка «Указана версия инструментов по умолчанию «2.0», но ее определение не найдено». может появиться тогда, если вы удалили ключ 2.0 по совету 1-й статьи. Решение для этого состоит в том, чтобы отредактировать каждое значение в разделе MSBuild в местах реестра, указанных для x32 и x64, и изменить DefaultToolsVersion на 14.0 или другую самую высокую версию инструментов MSBuild, которая установлена.
Обратите внимание, что на машине x64 вам необходимо исправить эти две проблемы как для местоположений реестра x32, так и для x64, поскольку среда IDE представляет собой 32-разрядный процесс, и если вы исправите только расположение x64, произойдет внутренний сбой, подчеркнув все стандартные единицы при использовании в вашем исходном коде. код и показывает «Не удается разрешить имя устройства xx»
Также может быть полезно установить это: https://www.microsoft.com/en-us/download/confirmation.aspx?id=48159
Это также может быть полезно знать (копирование с https://msdn.microsoft.com/en-us/library/bb383985.aspx):
Порядок старшинства
Порядок приоритета, от высшего к низшему, используемый для определения ToolsVersion: Атрибут ToolsVersion в задаче MSBuild, используемый для сборки проекта, если он есть.
Переключатель /toolsversion (или /tv), который используется в команде msbuild.exe, если он есть.
Если установлена переменная среды MSBUILDTREATALLTOOLSVERSIONSASCURRENT, используйте текущую версию ToolsVersion.
Если задана переменная среды MSBUILDTREATHIGHERTOOLSVERSIONASCURRENT и значение ToolsVersion, определенное в файле проекта, больше, чем текущее значение ToolsVersion, используйте текущее значение ToolsVersion.
Если установлена переменная среды MSBUILDLEGACYDEFAULTTOOLSVERSION или не задана ToolsVersion, используются следующие шаги:
Атрибут ToolsVersion элемента Project файла проекта. Если этот атрибут не существует, предполагается, что это текущая версия.
Версия инструментов по умолчанию в файле MSBuild.exe.config.
Версия инструментов по умолчанию в реестре. Дополнительные сведения см. в разделе Стандартные и настраиваемые конфигурации набора инструментов.
Если переменная среды MSBUILDLEGACYDEFAULTTOOLSVERSION не задана, используются следующие шаги:
Если для переменной среды MSBUILDDEFAULTTOOLSVERSION задана существующая версия ToolsVersion, используйте ее.
Если в MSBuild.exe.config задано значение DefaultOverrideToolsVersion, используйте его.
Если в реестре задано значение DefaultOverrideToolsVersion, используйте его.
В противном случае используйте текущую версию ToolsVersion.
person
George Birbilis
schedule
05.03.2017