Nie można znaleźć narzędzi kompilacji dla wersji v120 (zestaw narzędzi platformy = 'v120')

103

Przy korzystaniu z Visual Studio 2012 w Windows 8 x64 jest to najprawdopodobniej spowodowane przeniesieniem msbuild do .net, ale nie widziałem jeszcze, jak to naprawić.

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.
klient
źródło
1
Wskazówka dotycząca interfejsu wiersza polecenia: aby zbudować dowolne rozwiązanie z preferowanym rozwiązaniem PlatformToolset, możesz je zastąpić w następujący sposób (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(jeśli korzystasz z programu PowerShell, wstaw &wcześniej \Progr..). Dla VS2015, stanie "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"i /p:PlatformToolset=v140i tak dalej.
Vulcan Raven

Odpowiedzi:

73

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

Używasz programu Visual C ++ 2012 w wersji 110. v120 oznacza Visual C ++ 2013.

Więc albo zmień ustawienia projektu, aby użyć zestawu narzędzi w wersji 110, albo zainstaluj program Visual Studio 2013 na tym komputerze i użyj VS2013 do skompilowania.

Lex Li
źródło
70
Ale, ale ... pojawia się ten błąd, mimo że na moim komputerze jest zainstalowany VS 2013!
Tim Lovell-Smith
5
Czy udało Ci się to rozwiązać? Mam podobny problem. Jeśli kompiluję z programu TFS Team Build, pojawia się ten sam błąd. Jednak mogę dobrze zbudować z VS 2013 IDE i z wiersza polecenia VS 2013.
Ike Starnes
Sprawdziłem listę oprogramowania zainstalowanego na serwerach TFS Build tutaj: listofsoftwareontfshostedbuildserver.azurewebsites.net, gdzie przypuszczam, że to zadziała (podejrzewam, że powinno się zbudować, ale jeszcze nie muszę tego wypróbować). Zwracam uwagę, że VS 2013 nie jest faktycznie zainstalowany, tylko niektóre jego fragmenty.
Odkupiony 1
6
Zainstalowałem VS 2013 na serwerze kompilacji i nadal mam problem.
Odkupiony 1
4
Zwróć uwagę, że Twoje rozwiązanie może mieć wiele projektów. Więc sprawdź Właściwości dla nich wszystkich, klikając prawym przyciskiem myszy projekt (nie rozwiązanie) -> Właściwości konfiguracji-> Ogólne-> Zestaw narzędzi platformy (to jest na VS2013)
piksel
84

Jeśli masz zainstalowany VS2013 i otrzymujesz ten błąd, być może wywołujesz niewłaściwy program MSBuild. Wraz z VS2013 firma Microsoft zawiera teraz MSBuild jako część programu Visual Studio. Aby uzyskać szczegółowe informacje, zobacz ten wpis w blogu programu Visual Studio .

W szczególności zwróć uwagę na nową lokalizację plików binarnych:

Na komputerach 32-bitowych można je znaleźć w: C: \ Program Files \ MSBuild \ 12.0 \ bin

Na komputerach 64-bitowych narzędzia 32-bitowe będą znajdować się w lokalizacji: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin

oraz narzędzia 64-bitowe w: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin \ amd64

Wydaje się, że MSBuild w %WINDIR%\Microsoft.NET\Framework\nie rozpoznaje zestawu narzędzi platformy VS2013 (v120).

Kevin Richardson
źródło
2
Ta odpowiedź okazała się dla mnie właściwą odpowiedzią, gdy doświadczyłem tego samego problemu opisanego w PO.
Boinst
12
Jak zmienić ścieżkę do programu MSBuild?
rharrison33
Co próbujesz zrobić?
Kevin Richardson,
2
@ rharrison33 Kiedy użyłem wiersza polecenia VS2013, została użyta poprawna wersja msbuild. Uruchomienie wiersza polecenia VS2012 użyło nieprawidłowej lokalizacji msbuild. Nie jestem pewien, dlaczego VS2013 zainstalował wiersz polecenia VS2012, ale jest to coś, na co należy zwrócić uwagę ...
Jim Geurts
1
Budowanie z zestawem narzędzi v120 działa dla mnie w wierszu polecenia VS2012, gdy używam C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson
69

jeśli używasz programu Visual 2012, kliknij prawym przyciskiem myszy nazwę projektu -> właściwości -> właściwości konfiguracji -> ogólne -> zestaw narzędzi platformy -> Visual Studio 2012 (v110)

sara
źródło
1
To rozwiązało problem w moim przypadku. Próbowałem użyć VS2013, a potem napotkałem ten problem, kiedy wróciłem do VS2012. Pamiętaj, że musisz to zrobić dla każdego projektu w rozwiązaniu.
J. Peterson
Ten post z rozwiązaniem i wskazówkami jest tak jasny i łatwy do naśladowania .. Szkoda, że ​​rok 2012 wciąż daje mi stos błędów, po naprawieniu tego problemu z wersją 110 .. Mogę uruchomić dokładnie ten sam kod C działa w 2013 roku bez problemów, ale 2012 może nadal znaleźć błędy. Rok 2012 spowalnia kodowanie, dlatego teraz używam tylko 2013.
T. Webster
Zmieniono zestaw narzędzi platformy i wersję Windows SDK. Pracowałem!
Fırat Esmer
7

Aby dodać do odpowiedzi Kevina i Lexa:

Mieliśmy podobną sytuację w pracy, gdzie zarówno programiści, jak i serwer kompilacji mieli Visual Studio 2013. Nasze rozwiązanie miało projekt VS 2013 C ++ i zostało dobrze skompilowane, gdy zostało zbudowane na komputerze dewelopera lub na serwerze kompilacji w IDE. Problem występował podczas wyzwalania kompilacji przy użyciu definicji kompilacji TFS. Nadal używaliśmy starego szablonu kompilacji (wersja 11.1) zamiast 12.0. Na szczęście prosty dodatek atrybutu do szablonu pliku xaml rozwiązał problem. W części sekwencji „Kompiluj projekt” znajduje się węzeł XAML rozpoczynający się od

mtbwa:MSBuild CommandLineArgument=....

Możesz dodać atrybut „ToolPath” i wskazać właściwą ścieżkę do pliku MSBuild.exe, który chcesz wywołać, na podstawie odpowiedzi Kevina. Na przykład:

ToolPath="C:\Program Files (x86)\MSBuild\12.0\Bin"
Louis
źródło
4

Aby dodać do odpowiedzi Louisa:

Alternatywnie możesz użyć atrybutu, ToolVersion="12.0"jeśli używasz programu Visual Studio 2013 zamiast używać ToolPathatrybutu. Szczegóły można znaleźć pod adresem http://msdn.microsoft.com/en-us/library/dd647548.aspx

Więc nie jesteś zmuszony do używania ścieżki absolutnej.

kbisang
źródło
4

Zmarnowałem na to ponad 4 godziny.

Mam Visual Studio 2017 Enterprise , jeden z projektów ma poniższy błąd:

Nie można znaleźć narzędzi kompilacji dla wersji v120 (zestaw narzędzi platformy = 'v120')

Aby rozwiązać powyższy błąd, próbowałem zainstalować wszystkie poniższe:

Jednak żadne z powyższych nie zadziałało.

Później zainstalowałem Visual Studio 2013 Ultimate , a potem wszystko działało dobrze.

Wygląda na to, że starsze Visual Studio jest konieczne, aby rozwiązać ten problem.

Mam nadzieję, że to pomoże.

Manohar Reddy Poreddy
źródło
3

Kiedy projekt jest VS2013 C ++ jest otwarty w VS2015, a tam są ostrzeżenia o „narzędzia budowania dla V120 ... nie można znaleźć”, po prostu trzeba edytować plik .vcxproj i zmiany <PlatformToolset>v120</PlatformToolset>na <PlatformToolset>v140</PlatformToolset>i zamknąć i ponownie otworzyć rozwiązanie .

Dennis Schulze
źródło
1

W VS 2012 otrzymywałem komunikat „SMB2 nie będzie budować: błąd 1 błąd MSB8020: Nie można znaleźć narzędzi kompilacji dla programu Visual Studio 2010 (zestaw narzędzi platformy =„ v100 ”). Aby utworzyć kompilację przy użyciu narzędzi do kompilacji w wersji 100, kliknij menu Projekt lub kliknij prawym przyciskiem myszy rozwiązanie, a następnie wybierz opcję „Aktualizuj projekty VC ++ ...”. Zainstaluj program Visual Studio 2010, aby kompilować za pomocą narzędzi do kompilacji programu Visual Studio 2010 ”.

Rzucając ostrożność na wiatr, wypróbowałem sugestię: Wybrałem rozwiązanie w Eksploratorze rozwiązań, a następnie kliknąłem element menu „Aktualizuj VC ++”. Spowodowało to pewne aktualizacje, a następnie rozpoczęło się kompilowanie, które się powiodło.

Pozycja menu „Aktualizacja VC ++” nie pojawia się już w menu rozwiązania.

Tristan Fabrini
źródło
1

Miałem podobny problem, gdy usunąłem aktualizację społeczności VS 2013 5 i przełączyłem się na wersję społeczności VS 2015

oraz problem napotkany w projektach Windows Phone 8.1, gdzie narzekał na brak odpowiedniego zestawu narzędzi msbuild i na to, że emulatory nie są zainstalowane, nawet jeśli są.

Wiem, że źródłem problemu były ustawienia społeczności VS 2013, które pozostały po ostatniej deinstalacji, która zepsuła mi wszystko, mimo że proces odinstalowywania przebiegał sprawnie i bez problemów z panelu sterowania.

Starałem się usunąć wszystkie pozostałe pliki, ale zawsze coś zostało.

i to, co tylko dla mnie naprawiło, to nowa instalacja systemu Windows 10 x64, a następnie zainstalowałem wersję społeczności VS 2015 i to wszystko !! koniec z błędami dla mnie i emulator wp8.1 też działał dobrze !!

w moim przypadku jestem teraz całkowicie pewien, że poprzednie ustawienia instalacji Visual Studio zepsuły mi wszystko, a ponieważ nie znalazłem i nie próbowałem całkowicie usunąć plików i ustawień społeczności VS 2013, musiałem za to zapłacić i ponownie zainstalować mój system operacyjny.

możesz uniknąć ponownej instalacji systemu operacyjnego, jeśli znajdziesz sposób na całkowite usunięcie ostatnich plików instalacyjnych programu Visual Studio.

PS: spróbuj tego rozwiązania (reinstalacja systemu operacyjnego) dopiero po wypróbowaniu wszystkich możliwych sposobów, a następnie, jeśli nic nie działa, a dopiero potem ... zastosuj to rozwiązanie w ostateczności.

Józef
źródło
Ten błąd pojawia się przy nowej instalacji społeczności VS 2015. Firma Microsoft nie ma poprawnych ścieżek dla x64.
Michaelangel007
0

W VS2013, aby skonfigurować wszystkie projekty do poprawnego budowania narzędzi, możesz kliknąć prawym przyciskiem myszy rozwiązanie w eksploratorze rozwiązań i wybrać opcję „Retarget solution”. Zmieni to wszystkie progekty (wszystko, co sprawdzisz za pomocą pola wyboru w otwartym oknie dialogowym), więc błąd zniknie.

daniel.bavrin
źródło
Próbowałem tego. Nie pomaga w moim przypadku w VS Community 2015.: - /
Michaelangel007
0

W moim przypadku dwukrotnie kliknąłem plik sln Visual 2013 i otworzyłem Visual 2012 (zamiast Visual 2013). Podczas próby kompilacji z programem Visual 2012 projekt, w którym zestaw narzędzi platformy ustawiono na „v120”, wykazał wspomniany powyżej błąd. Jednak po ponownym otwarciu sln z Visual 2013, zestaw narzędzi platformy został ustawiony na „Visual Studio 2013 (v120)” - proszę zanotować tym razem pełną nazwę - faktycznie wykonał zadanie za mnie. Projekt dobrze się teraz kompiluje.

user1787252
źródło
0

Otrzymałem ten sam błąd podczas tworzenia projektu USBView w VS2015. Usunąłem ten błąd, wybierając ustawienia „Platform Toolset” na „Visual Studio 2015 (v140)”, a następnie kliknij prawym przyciskiem myszy rozwiązanie (w VS2015) i wybierz „Retarget Solution” i w tym oknie dialogowym wybrałem 10.0.10240.0.

Wygląda na to, że istnieje również ProjectUpgradeTool firmy Microsoft, który powinien konwertować starsze projekty w celu uaktualnienia do wersji VS2012 VS, ale nie mogłem zlokalizować tego narzędzia na moim komputerze.

Nadal muszę naprawić jakiś nowy błąd linkera za pomocą tego .

zar
źródło
0

Miałem podobny problem. Społeczność VS 2015 (MSBuild 14) budująca aplikację C ++, chciała użyć narzędzi VS 2010 (v100). Wszystko zepsuło się, dając msbuildowi nieprawidłową opcję konfiguracyjną. Dziwne.

Dlatego ponownie sprawdź wszystkie te opcje i parametry.

Jahmic
źródło
0

Jeśli używasz generatorów make, takich jak cmake, JUCE itp., Spróbuj ustawić poprawną wersję docelową VS (2013, 2015, 2017) i ponownie wygeneruj rozwiązanie .

DenisKolodin
źródło
0

Miałem ten sam problem podczas tworzenia niektórych projektów.

Użyłem Visual Studio 2015 IDE, tam działało dobrze, ale podczas tworzenia kompilacji ze skryptu PowerShell dawało to zestaw narzędzi związany z „Nie można znaleźć narzędzi kompilacji dla v140 (Platform Toolset = 'v140')”. błąd

Ostatecznie więc chodziło o wskazanie nieprawidłowego pliku MSBUILD exe dla odpowiedniego projektu.

Wcześniej wskazywałem na $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

Kompilacja przebiegła pomyślnie, gdy zaktualizowałem skrypt, aby wskazywał na $ MSBUILD = "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Dlatego, aby rozwiązać problem, upewnij się, że używasz poprawnego MSBUILD.

Sagar Mahewar
źródło