Інструменти збирання для v120 (набір інструментів платформи = 'v120') неможливо знайти


103

Використовуючи візуальну студію 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так далі.
вулкан ворон

Відповіді:


73

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

Ви використовуєте Visual C ++ 2012, що є v110. 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
Ця відповідь виявилася для мене правильною відповіддю, коли я пережив те саме питання, яке описано в ОП.
Boinst

12
Як ви змінюєте шлях до MSBuild?
rharrison33

Що ви намагаєтеся зробити?
Кевін Річардсон

2
@ rharrison33 Коли я використовував командний рядок VS2013, тоді була використана правильна версія msbuild. Запуск командного рядка VS2012 використовував неправильне розташування msbuild. Не дуже впевнений, чому VS2013 встановив командний рядок VS2012, але це на що слід звернути увагу ...
Jim Geurts

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

69

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


1
Це вирішило це в моєму випадку. Я спробував скористатися VS2013, а потім зіткнувся з цим питанням, коли я повернувся до VS2012. Зауважте, що ви повинні робити це для кожного проекту в рішенні.
Дж. Петерсон

Цей пост з рішенням та вказівками настільки зрозумілий і простий у дотриманні. Дуже поганий 2012 рік все ще дає мені купу помилок, після того як я виправив цю проблему v110 .. Я можу запустити точно той самий код C, який працює у 2013 році без проблем, але 2012 року все ще вдається знайти помилки. 2012 рік уповільнює кодування, тому я використовую лише 2013 рік.
Т. Вебстер

Змінено набір інструментів платформи та версії SDK для Windows. Працювали!
Фірат Есмер


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 замість ToolPathатрибута. Детальніше відвідайте http://msdn.microsoft.com/en-us/library/dd647548.aspx

Таким чином, ви не змушені використовувати абсолютний шлях.


4

На це витратили 4 години.

У мене є Visual Studio 2017 Enterprise , один з проектів має помилку нижче:

Інструменти збирання для v120 (набір інструментів платформи = 'v120') неможливо знайти

Щоб вирішити вищезгадану помилку, я спробував встановити все нижче:

Однак жодне з перерахованого вище не спрацювало.

Пізніше встановили Visual Studio 2013 Ultimate , тоді все працювало чудово.

Схоже, для вирішення цього питання необхідна старша студія Visual.

Сподіваюся, це допомагає.


3

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


1

У VS 2012 я отримував "SMB2 не будує: помилка 1 помилка MSB8020: інструменти збирання для Visual Studio 2010 (набір інструментів платформи = 'v100') неможливо знайти. Щоб створити за допомогою інструментів збирання v100, натисніть меню Проект або клацніть правою кнопкою миші рішення та виберіть "Оновити проекти VC ++ ...". Встановіть Visual Studio 2010 для створення за допомогою інструментів збирання Visual Studio 2010. "

Кидаючи обережність на вітер, я спробував пропозицію: Вибрав рішення в Провіднику рішень, потім натиснув на пункт меню "Оновити VC ++". Це здійснило деяке оновлення, а потім розпочало збірку, яка досягла успіху.

Елемент меню "Оновити VC ++" більше не відображається в меню рішення.


1

У мене була подібна проблема, коли я видалив оновлення VS 2013 Community 5 та перейшов на версію спільноти VS 2015

і проблема, отримана в проектах Windows Phone 8.1, де вона скаржилася на відсутність потрібного набору інструментів msbuild та на не встановлені емулятори, навіть якщо вони є.

я знаю, що джерелом проблеми були налаштування спільноти VS 2013, які залишилися останньою видаленням, яка все зіпсувала для мене, навіть незважаючи на те, що процес видалення пройшов безперебійно, без проблем з панелі управління.

я зробив все можливе, щоб видалити будь-які файли, що залишилися, але завжди залишалося щось.

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

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

ви можете уникнути перевстановлення ОС, якщо ви знайдете спосіб повністю стерти файли встановлення останньої візуальної студії.

PS: спробуйте це рішення (перевстановити ОС) лише після того, як ви спробували всі можливі способи, потім, якщо нічого не працює, і лише потім ... зробіть це рішення в крайньому випадку.


Отримання цієї помилки із новою установкою спільноти VS 2015. Microsoft не має правильних шляхів для x64.
Michaelangel007

0

У VS2013, щоб налаштувати всі проекти для виправлення інструментів збирання, ви можете клацнути правою кнопкою миші на рішенні в провіднику рішень і вибрати "Retarget solution". Він змінить усі проекти (все, що ви поставите за допомогою прапорця у відкритому діалоговому вікні), тому помилка не буде знищена.


Спробував це. Не допомагає в моєму випадку з 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. Я усунув цю помилку, вибравши параметри "Набір інструментів платформи" до "Visual Studio 2015 (v140)", а потім клацніть правою кнопкою миші на рішенні (у VS2015) та виберіть "Перевстановити рішення" та вибрав 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 для відповідного проекту.

Раніше я вказував на $ 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.