Alat build untuk v120 (Platform Toolset = 'v120') tidak dapat ditemukan

103

Menggunakan visual studio 2012 pada windows 8 x64 ternyata ini disebabkan oleh msbuild dipindahkan ke .net tetapi saya belum melihat cara memperbaikinya.

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.
clienthax
sumber
1
Tip CLI: Untuk membangun solusi apa pun dengan pilihan PlatformToolset, Anda dapat menggantinya seperti ini (VS2013): "\Program Files (x86)\MSBuild\12.0\Bin\MSBuild" .\path\to\MySolution.sln /p:PlatformToolset=v120(jika Anda menggunakan PowerShell, letakkan &sebelumnya \Progr..). Untuk VS2015, itu akan menjadi "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"dan /p:PlatformToolset=v140dan sebagainya.
gagak vulcan

Jawaban:

73

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

Anda menggunakan Visual C ++ 2012 yang v110. v120 berarti Visual C ++ 2013.

Jadi baik Anda mengubah pengaturan proyek untuk menggunakan toolset v110, atau Anda menginstal Visual Studio 2013 di mesin ini dan menggunakan VS2013 untuk mengkompilasinya.

Lex Li
sumber
70
Tapi, tapi ... Saya mendapatkan kesalahan ini meskipun saya telah menginstal VS 2013 di mesin saya!
Tim Lovell-Smith
5
Apakah Anda sudah menyelesaikannya? Saya mengalami masalah serupa. Jika saya membangun dari TFS Team Build, saya mendapatkan kesalahan yang sama. Namun, saya dapat membangun dengan baik dari VS 2013 IDE dan dari prompt perintah VS 2013.
Ike Starnes
Saya memeriksa daftar perangkat lunak yang diinstal pada TFS Build Server di sini: listofsoftwareontfshostedbuildserver.azurewebsites.net mana saya menganggap ini akan berfungsi (saya menduga ini harus dibangun tetapi saya belum harus mencobanya). Saya perhatikan bahwa VS 2013 sebenarnya tidak diinstal, hanya beberapa bit saja.
Ditukar 1
6
Saya menginstal VS 2013 di server build dan masih mengalami masalah.
Ditukar 1
4
Perhatikan bahwa solusi Anda mungkin memiliki banyak proyek. Jadi, periksa Properties untuk semuanya dengan klik kanan pada proyek (bukan solusi) -> Configuration Properties-> General-> Platform Toolset (ini di VS2013)
piksel
84

Jika Anda menginstal VS2013 dan mendapatkan kesalahan ini, Anda mungkin menggunakan MSBuild yang salah. Dengan VS2013, Microsoft sekarang menyertakan MSBuild sebagai bagian dari Visual Studio. Lihat postingan blog Visual Studio ini untuk detailnya.

Secara khusus, perhatikan lokasi baru biner:

Pada komputer 32-bit, mereka dapat ditemukan di: C: \ Program Files \ MSBuild \ 12.0 \ bin

Pada mesin 64-bit, alat 32-bit akan berada di: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin

dan alat 64-bit di bawah: C: \ Program Files (x86) \ MSBuild \ 12.0 \ bin \ amd64

MSBuild di %WINDIR%\Microsoft.NET\Framework\tampaknya tidak mengenali perangkat platform VS2013 (v120).

Kevin Richardson
sumber
2
Jawaban ini ternyata menjadi jawaban yang tepat untuk saya ketika saya mengalami masalah yang sama seperti yang dijelaskan di OP.
Boinst
12
Bagaimana Anda mengubah jalur ke MSBuild?
rharrison33
Apa yang Anda coba lakukan?
Kevin Richardson
2
@ rharrison33 Ketika saya menggunakan prompt perintah VS2013, versi msbuild yang benar kemudian digunakan. Menjalankan prompt perintah VS2012 menggunakan lokasi msbuild yang salah. Tidak begitu yakin mengapa VS2013 memasang prompt perintah VS2012, tetapi itu adalah sesuatu yang harus diperhatikan ...
Jim Geurts
1
Membangun dengan toolset v120 bekerja untuk saya dalam prompt perintah VS2012 saat saya menggunakan C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson
69

jika Anda menggunakan visual 2012 klik kanan pada nama proyek -> properti -> properti konfigurasi -> umum -> platform toolset -> Visual Studio 2012 (v110)

sara
sumber
1
Ini menyelesaikannya dalam kasus saya. Saya mencoba menggunakan VS2013, kemudian mengalami masalah ini ketika saya kembali ke VS2012. Perhatikan bahwa Anda harus melakukan ini untuk setiap proyek dalam solusi.
J. Peterson
Posting ini dengan solusi dan petunjuk yang begitu jelas dan mudah diikuti .. Sayang sekali 2012 masih memberi saya setumpuk kesalahan, setelah saya memperbaiki masalah v110 itu .. Saya dapat menjalankan kode C yang sama persis yang berjalan pada 2013 tanpa masalah, tetapi 2012 masih bisa menemukan kesalahan. 2012 memperlambat pengkodean, itulah sebabnya saya hanya menggunakan 2013 sekarang.
T. Webster
Perangkat Platform Berubah dan Versi SDK Windows. Bekerja!
Fırat Esmer
7

Untuk menambah jawaban Kevin dan Lex:

Kami memiliki situasi serupa di tempat kerja di mana pengembang dan server pembangunan memiliki Visual Studio 2013. Solusi kami memiliki proyek VS 2013 C ++ dan dikompilasi dengan baik ketika dibangun di mesin pengembang atau di server pembangunan dalam IDE. Masalahnya adalah saat memicu build menggunakan definisi build TFS. Kami masih menggunakan template build lama (versi 11.1), bukan 12.0. Untungnya, penambahan atribut sederhana ke file template xaml memecahkan masalah tersebut. Di bagian Urutan "Kompilasi Proyek", ada node xaml yang dimulai dengan

mtbwa:MSBuild CommandLineArgument=....

Anda dapat menambahkan atribut "ToolPath" dan mengarahkannya ke jalur yang benar dari MSBuild.exe yang ingin Anda panggil, berdasarkan jawaban Kevin. Misalnya:

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

Untuk menambahkan hingga jawaban Louis:

Alternatifnya, Anda dapat menggunakan atribut ToolVersion="12.0"jika Anda menggunakan Visual Studio 2013 daripada menggunakan ToolPathAtribut. Detail kunjungi http://msdn.microsoft.com/en-us/library/dd647548.aspx

Jadi Anda tidak dipaksa untuk menggunakan jalur absolut.

kbisang
sumber
4

Membuang 4+ jam untuk ini.

Saya memiliki Visual Studio 2017 Enterprise , salah satu proyek memiliki galat di bawah ini:

Alat build untuk v120 (Platform Toolset = 'v120') tidak dapat ditemukan

Untuk mengatasi kesalahan di atas, saya mencoba menginstal semua di bawah ini:

Namun, tidak ada satu pun cara di atas yang berhasil.

Kemudian, menginstal Visual Studio 2013 Ultimate , kemudian semuanya berfungsi dengan baik.

Sepertinya, studio Visual yang lebih lama adalah suatu keharusan untuk menyelesaikan ini.

Semoga membantu.

Manohar Reddy Poreddy
sumber
3

Ketika proyek VS2013 C ++ dibuka di VS2015, dan ada peringatan tentang "Alat pembangunan untuk v120 ... tidak dapat ditemukan", saya hanya perlu mengedit file .vcxproj dan mengubahnya <PlatformToolset>v120</PlatformToolset>ke <PlatformToolset>v140</PlatformToolset>, dan menutup dan membuka kembali solusi .

Dennis Schulze
sumber
1

Di VS 2012, saya mendapatkan "SMB2 tidak akan membangun: Kesalahan 1 kesalahan MSB8020: Alat pembangunan untuk Visual Studio 2010 (Platform Toolset = 'v100') tidak dapat ditemukan. Untuk membangun menggunakan alat pembangunan v100, klik menu Proyek atau klik kanan solusi, dan kemudian pilih "Perbarui VC ++ Proyek ...". Instal Visual Studio 2010 untuk membangun menggunakan alat pembuatan Visual Studio 2010. "

Dengan hati-hati, saya mencoba saran: Memilih Solusi di Solution Explorer, lalu mengklik item menu "Perbarui VC ++". Ini melakukan beberapa pembaruan dan kemudian memulai membangun yang berhasil.

Item menu "Perbarui VC ++" tidak lagi muncul di menu solusi.

Tristan Fabrini
sumber
1

Saya memiliki masalah yang sama ketika saya menghapus VS 2013 community Update 5 dan beralih ke edisi komunitas VS 2015

dan masalah yang didapat di proyek windows phone 8.1 di mana ia mengeluh karena tidak memiliki perangkat alat msbuild yang tepat dan tentang emulator yang tidak terpasang bahkan jika ada.

Saya tahu bahwa sumber masalahnya adalah pengaturan komunitas VS 2013 yang ditinggalkan oleh pencopotan terakhir yang mengacaukan segalanya untuk saya meskipun proses pencopotan pemasangan berjalan lancar tanpa masalah dari panel kontrol.

saya melakukan yang terbaik untuk menghapus file yang tersisa tetapi selalu ada beberapa yang tersisa.

dan yang hanya memperbaikinya untuk saya adalah instalasi windows 10 x64 yang baru kemudian setelah itu saya menginstal edisi komunitas VS 2015 dan hanya itu !! tidak ada lagi kesalahan untuk saya dan emulator wp8.1 juga berfungsi dengan baik !!

dalam kasus saya sekarang saya benar-benar yakin bahwa pengaturan pemasangan studio visual sebelumnya telah mengacaukan segalanya untuk saya dan karena tidak ada cara saya menemukan dan mencoba untuk sepenuhnya menghapus file dan pengaturan komunitas VS 2013, saya harus membayar harga untuk itu dan menginstal ulang OS saya.

Anda mungkin dapat menghindari penginstalan ulang OS jika Anda dapat menemukan cara untuk sepenuhnya menghapus file penginstalan studio visual terakhir.

PS: hanya coba solusi ini (instal ulang OS) setelah Anda mencoba semua cara yang mungkin terlebih dahulu kemudian jika tidak ada yang berhasil dan baru kemudian ... jadikan solusi ini sebagai pilihan terakhir.

Joseph
sumber
Mendapatkan kesalahan ini dengan pemasangan baru VS 2015 Community. Microsoft tidak memiliki jalur yang benar untuk x64.
Michaelangel007
0

Di VS2013 untuk menyiapkan semua project untuk memperbaiki alat build, Anda dapat melakukan klik kanan pada solusi di explorer solusi dan memilih "Retarget solution". Ini akan mengubah semua progects (semua yang Anda periksa dengan kotak centang di dialog terbuka), sehingga kesalahan akan hilang.

daniel.bavrin
sumber
Sudah coba. Tidak membantu dalam kasus saya dengan Komunitas VS 2015.: - /
Michaelangel007
0

Dalam kasus saya, saya telah mengklik dua kali file Visual 2013 SLN dan Visual 2012 dibuka (bukan Visual 2013). Mencoba untuk mengkompilasi dengan Visual 2012, sebuah proyek yang Platform Toolsetnya disetel ke "v120" menunjukkan kesalahan yang disebutkan di atas. Namun, membuka kembali sln dengan Visual 2013, Platform Toolset disetel ke "Visual Studio 2013 (v120)" - harap catat nama lengkapnya kali ini -, benar-benar berfungsi untuk saya. Proyek ini terkompilasi dengan baik sekarang.

pengguna1787252
sumber
0

Saya mendapatkan kesalahan yang sama dengan membangun proyek USBView di VS2015. Saya menghapus kesalahan ini dengan memilih pengaturan 'Platform Toolset' ke "Visual Studio 2015 (v140)" dan kemudian klik kanan pada solusi (di VS2015) dan pilih 'Retarget Solution' dan pilih 10.0.10240.0 pada dialog itu.

Sepertinya ada juga ProjectUpgradeTool dari microsoft yang seharusnya mengubah proyek lama untuk meningkatkan ke posting VS2012 VS tetapi saya tidak dapat menemukan alat itu di mesin saya.

Saya masih harus memperbaiki beberapa kesalahan tautan baru dengan bantuan ini .

zar
sumber
0

Saya memiliki masalah serupa. VS 2015 Community (MSBuild 14) membuat aplikasi c ++, ingin menggunakan alat VS 2010 (v100). Semuanya turun memberikan msbuild opsi konfigurasi yang tidak valid. Aneh.

Jadi, periksa kembali semua opsi dan parameter tersebut.

Jahmic
sumber
0

Jika Anda menggunakan generator make seperti cmake, JUCE, dll. Cobalah untuk menetapkan target versi VS yang benar (2013, 2015, 2017) dan buat ulang solusi lagi.

DenisKolodin
sumber
0

Saya menghadapi masalah yang sama saat membangun beberapa proyek.

Saya menggunakan Visual Studio 2015 IDE, di sana berfungsi dengan baik tetapi saat memberikan build dari skrip PowerShell, itu memberikan toolset terkait "Alat build untuk v140 (Platform Toolset = 'v140') tidak dapat ditemukan." kesalahan

Jadi akhirnya itu masalah menunjuk ke salah MSBUILD exe untuk proyek masing-masing.

Sebelumnya saya menunjuk ke $ MSBUILD = "C: \ windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe

Dan build berhasil ketika saya memperbarui skrip untuk mengarah ke $ MSBUILD = "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe"

Oleh karena itu untuk mengatasi masalah tersebut, pastikan untuk menggunakan MSBUILD yang benar.

Sagar Mahewar
sumber