Пробная версия Delphi 10 Seattle не может ничего скомпилировать, выдает ошибку MSBuild

Я скачал и установил пробную версию Delphi 10. Однако каждый раз, когда я пытаюсь что-либо собрать, я получаю следующее: MSBuildToolsPath не указан для ToolsVersion "12.0", определенного в "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0", или указанное значение оценено в пустую строку

Ключ 12.0 не существует в «ToolsVersions» на моем компьютере. Однако у меня есть версии 2.0, 3.5, 4.0 и 14.0. У меня также есть полная, отлично работающая установка Visual Studio 2015 Community, если это знание поможет. Я использую Windows 10 Pro, 64-разрядную версию. Что я могу сделать, чтобы исправить эту проблему? Это первый раз, когда у меня возникла проблема с какой-либо версией Delphi/RAD Studio... на самом деле я не знал, что IDE Rad Studio заботится, использует или имеет какое-либо отношение к MSBuild до сих пор.


person BenGrasset91    schedule 04.10.2015    source источник
comment
Вы пытаетесь строить вне процесса?   -  person David Heffernan    schedule 04.10.2015
comment
Нет. Первоначально это произошло сразу после того, как я впервые запустил IDE, когда я просто пытался установить SynEdit через менеджер пакетов GetIt, даже не создавая настоящий проект... И все реальные проекты, которые я пытался построить с тех пор, все отключите опцию «вне процесса».   -  person BenGrasset91    schedule 04.10.2015
comment
Это проблема, связанная с установкой. Вам следует создать бесплатную заявку на поддержку в Поддержка Embarcadero.   -  person Ken White    schedule 04.10.2015
comment
MSBuild 12.0 можно скачать с сайта Microsoft. Он также является частью Visual Studio 2013.   -  person Lex Li    schedule 05.10.2015


Ответы (2)


Это известная проблема, описанная здесь: 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
comment
Добавлены соответствующие скриншоты в сообщение блога zoomicon.wordpress.com/2017/03/06/ - person George Birbilis; 06.03.2017

Я решаю свою проблему в delphi, для которой требуется Msbuild 14, я просто загружаю и устанавливаю msbuild, который соответствует моему сообщению об ошибке, в моем случае: https://www.microsoft.com/en-us/download/details.aspx?id=48159

Я думаю, что вы можете загрузить msbuild с сайта Microsoft, чтобы посмотреть, работает ли он.

person Sandro Adad    schedule 06.11.2015