Инструменты сборки для v120 (Platform Toolset = 'v120') не могут быть найдены


103

При использовании Visual Studio 2012 на Windows 8 x64 это вызвано перемещением msbuild в .net, но я еще не видел, как это исправить.

4>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5):
error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.    
5>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(44,5): error MSB8020: The builds tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, either click the Project menu or right-click the solution, and then select "Update VC++ Projects...". Install v120 to build using the v120 build tools.

1
Совет CLI: чтобы создать любое предпочтительное решение PlatformToolset, вы можете переопределить его следующим образом (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(если вы используете PowerShell, укажите &перед \Progr..). Для VS2015, это будет "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"и /p:PlatformToolset=v140так далее.
vulcan raven

Ответы:


73

http://en.wikipedia.org/wiki/Visual_C++

Вы используете Visual C ++ 2012 версии 110. v120 означает Visual C ++ 2013.

Таким образом, вы либо измените настройки проекта, чтобы использовать набор инструментов v110, либо установите Visual Studio 2013 на этот компьютер и используйте VS2013 для его компиляции.


70
Но, но ... Я получаю эту ошибку, хотя на моем компьютере установлен VS 2013!
Тим Ловелл-Смит

5
Вы решили эту проблему? У меня аналогичная проблема. Если я собираю из TFS Team Build, я получаю ту же ошибку. Однако я могу отлично собрать VS 2013 IDE и из командной строки VS 2013.
Айк Старнес

Я проверил список программного обеспечения, установленного на серверах сборки TFS, здесь: listofsoftwareontfshostedbuildserver.azurewebsites.net, где, как я полагаю, это сработает (я подозреваю, что это должно быть создано, но мне еще не пришлось его пробовать). Отмечу, что VS 2013 фактически не установлен, только некоторые его части.
Погашен1

6
Я установил VS 2013 на сервер сборки, но проблема не исчезла.
Погашен1

4
Обратите внимание, что у вашего решения может быть несколько проектов. Итак, проверьте свойства для всех из них, щелкнув правой кнопкой мыши проект (не решение) -> Свойства конфигурации-> Общие-> Набор инструментов платформы (это на VS2013)
пиксель

84

Если у вас установлен VS2013 и вы получаете эту ошибку, возможно, вы вызываете неправильный MSBuild. В VS2013 Microsoft теперь включает MSBuild как часть Visual Studio. Подробнее см. Это сообщение в блоге Visual Studio .

В частности, обратите внимание на новое расположение двоичных файлов:

На 32-битных машинах их можно найти в: C: \ Program Files \ MSBuild \ 12.0 \ bin

На 64-битных машинах 32-битные инструменты будут в: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin

и 64-разрядные инструменты в папке: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin \ amd64

MSBuild %WINDIR%\Microsoft.NET\Framework\, похоже, не распознает набор инструментов платформы VS2013 (v120).


2
Этот ответ оказался для меня правильным ответом, когда я столкнулся с той же проблемой, описанной в OP.
Boinst

12
Как изменить путь к MSBuild?
rharrison33

Что вы пытаетесь сделать?
Кевин Ричардсон

2
@ rharrison33 Когда я использовал командную строку VS2013, тогда использовалась правильная версия msbuild. При запуске командной строки VS2012 использовалось неправильное расположение сборки msbuild. Не совсем уверен, почему VS2013 установил командную строку VS2012, но на это стоит обратить внимание ...
Джим Гертс,

1
Сборка с помощью набора инструментов v120 у меня работает в командной строке VS2012, когда я использую C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Кевин Ричардсон,

69

если вы используете Visual 2012, щелкните правой кнопкой мыши имя проекта -> свойства -> свойства конфигурации -> общие -> набор инструментов платформы -> Visual Studio 2012 (v110)


1
Это решило это в моем случае. Я пробовал использовать VS2013, но столкнулся с этой проблемой, когда вернулся к VS2012. Обратите внимание, что вы должны сделать это для каждого проекта в решении.
Дж. Петерсон

Этот пост с решением и указаниями настолько ясен и прост для понимания .. Жаль, что 2012 год все еще дает мне кучу ошибок после того, как я исправил эту проблему v110 .. Я могу запустить точно такой же код C, который работает в 2013 году, без проблем, но 2012 еще может удастся найти ошибки. 2012 замедляет кодирование, поэтому сейчас я использую только 2013 год.
Т. Вебстер,

Изменен набор инструментов платформы и версия Windows SDK. Работал!
Fırat Esmer


7

Чтобы добавить к ответам Кевина и Лекса:

У нас была аналогичная ситуация на работе, когда и разработчики, и сервер сборки использовали Visual Studio 2013. Наше решение содержало проект VS 2013 C ++ и отлично компилировалось при сборке на машине разработчика или на сервере сборки в среде IDE. Проблема заключалась в запуске сборок с использованием определений сборки TFS. Мы по-прежнему использовали старый шаблон сборки (версия 11.1) вместо 12.0. К счастью, проблему решило простое добавление атрибута в файл шаблона xaml. В части последовательности «Скомпилировать проект» есть узел xaml, который начинается с

mtbwa:MSBuild CommandLineArgument=....

Вы можете добавить атрибут «ToolPath» и указать ему правильный путь к MSBuild.exe, который вы хотите вызвать, на основе ответа Кевина. Например:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"

4

Чтобы добавить к ответу Луи:

В качестве альтернативы вы можете использовать атрибут, ToolVersion="12.0"если используете Visual Studio 2013 вместо ToolPathAttribute. Подробности посетите http://msdn.microsoft.com/en-us/library/dd647548.aspx

Таким образом, вы не обязаны использовать абсолютный путь.


4

Потратил на это 4+ часа.

У меня Visual Studio 2017 Enterprise , в одном из проектов есть ошибка ниже:

Инструменты сборки для v120 (Platform Toolset = 'v120') не могут быть найдены

Чтобы устранить указанную выше ошибку, я попытался установить все нижеприведенное:

Однако ничего из вышеперечисленного не помогло.

Позже установил Visual Studio 2013 Ultimate , потом все заработало.

Похоже, для решения этой проблемы необходима более старая Visual Studio.

Надеюсь, поможет.


3

Когда проект VS2013 C ++ открывается в VS2015 и появляются предупреждения о том, что «Инструменты сборки для v120 ... не могут быть найдены», мне просто нужно отредактировать файл .vcxproj и изменить <PlatformToolset>v120</PlatformToolset>его <PlatformToolset>v140</PlatformToolset>, закрыть и снова открыть решение. .


1

В VS 2012 я получал сообщение «SMB2 не будет строиться: ошибка 1 ошибка MSB8020: инструменты сборки для Visual Studio 2010 (Platform Toolset = 'v100') не могут быть найдены. Чтобы построить с использованием инструментов сборки v100, щелкните меню« Проект ». или щелкните решение правой кнопкой мыши и выберите «Обновить проекты VC ++ ...». Установите Visual Studio 2010 для сборки с использованием инструментов сборки Visual Studio 2010 ».

Не обращая внимания на осторожность, я попробовал следующее предложение: выбрал решение в обозревателе решений, затем щелкнул пункт меню «Обновить VC ++». Произошло некоторое обновление, а затем началась успешная сборка.

Пункт меню «Обновить VC ++» больше не отображается в меню решения.


1

У меня была аналогичная проблема, когда я удалил обновление 5 сообщества VS 2013 и переключился на версию сообщества VS 2015

и проблема возникла в проектах Windows Phone 8.1, где он жаловался на отсутствие нужного набора инструментов msbuild и на то, что эмуляторы не установлены, даже если они есть.

Я знаю, что источником проблемы были настройки сообщества VS 2013, которые были оставлены этим последним удалением, которое испортило все для меня, хотя процесс удаления прошел гладко без проблем с панели управления.

Я делал все возможное, чтобы удалить все оставшиеся файлы, но всегда что-то оставалось.

и что только исправило это для меня, так это свежая установка Windows 10 x64, после чего я установил версию сообщества VS 2015 и все !! у меня больше нет ошибок, и эмулятор wp8.1 тоже работал нормально !!

в моем случае теперь полностью уверен, что предыдущие настройки установки визуальной студии испортили мне все, и поскольку я не нашел никакого способа полностью стереть файлы и настройки сообщества VS 2013, мне пришлось заплатить за это цену и переустановить моя ОС.

вы можете избежать переустановки ОС, если найдете способ полностью стереть последние установочные файлы Visual Studio.

PS: попробуйте это решение (переустановка ОС) только после того, как вы сначала попробовали все возможные способы, затем, если ничего не работает, и только потом ... сделайте это решение в крайнем случае.


Получение этой ошибки при новой установке VS 2015 Community. У Microsoft нет правильных путей для x64.
Michaelangel007

0

В VS2013, чтобы настроить все проекты для исправления инструментов сборки, вы можете щелкнуть правой кнопкой мыши решение в обозревателе решений и выбрать «Перенацелить решение». Это изменит все проекты (все, что вы отметите флажком в открытом диалоге), поэтому ошибка исчезнет.


Пробовал. Не помогает в моем случае с VS Community 2015.: - /
Michaelangel007

0

В моем случае я дважды щелкнул sln-файл Visual 2013 и открыл Visual 2012 (вместо Visual 2013). При попытке скомпилировать с Visual 2012 проект, в котором для набора инструментов платформы установлено значение «v120», выявила вышеупомянутую ошибку. Однако при повторном открытии sln с помощью Visual 2013 для набора инструментов платформы было установлено значение «Visual Studio 2013 (v120)» - на этот раз обратите внимание на полное имя - фактически выполнило свою работу за меня. Сейчас проект компилируется хорошо.


0

Я получал ту же ошибку при создании проекта USBView в VS2015. Я удалил эту ошибку, выбрав в настройках «Platform Toolset» значение «Visual Studio 2015 (v140)», а затем щелкнув правой кнопкой мыши решение (в VS2015), выбрав «Retarget Solution» и выбрав 10.0.10240.0 в этом диалоговом окне.

Похоже, есть также ProjectUpgradeTool от Microsoft, который должен преобразовать старые проекты для обновления для публикации VS2012 VS, но я не смог найти этот инструмент на своей машине.

Мне все еще нужно исправить новую ошибку компоновщика с помощью этого .


0

У меня была похожая проблема. Сообщество VS 2015 (MSBuild 14), создающее приложение на C ++, хотело использовать инструменты VS 2010 (v100). Все это привело к тому, что msbuild оказался неверным параметром конфигурации. Странный.

Итак, перепроверьте все эти параметры и параметры.


0

Если вы используете генераторы make, такие как cmake, JUCE и т. Д., Попробуйте установить правильную целевую версию VS (2013, 2015, 2017) и повторно сгенерировать решение .


0

Я столкнулся с той же проблемой при создании некоторых проектов.

Я использовал Visual Studio 2015 IDE, там он работал нормально, но при создании сборки из сценария PowerShell он давал набор инструментов, связанный с «Инструменты сборки для v140 (Platform Toolset = 'v140') не могут быть найдены». ошибка

Таким образом, в конечном итоге возникла проблема с указанием неправильного MSBUILD exe для соответствующего проекта.

Раньше я указывал на $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

И сборка была успешной, когда я обновил скрипт, чтобы указать на $ MSBUILD = "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Следовательно, чтобы решить эту проблему, убедитесь, что вы используете правильный MSBUILD.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.