ไม่พบเครื่องมือสร้างสำหรับ 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 ซึ่งเป็น v110 v120 หมายถึง Visual C ++ 2013

ดังนั้นคุณเปลี่ยนการตั้งค่าโครงการเพื่อใช้ชุดเครื่องมือ v110 หรือคุณติดตั้ง Visual Studio 2013 บนเครื่องนี้และใช้ VS2013 เพื่อรวบรวม


70
แต่ แต่ ... ฉันได้รับข้อผิดพลาดนี้แม้ว่าฉันจะติดตั้ง VS 2013 ในเครื่องแล้วก็ตาม!
Tim Lovell-Smith

5
คุณได้รับการแก้ไขแล้วหรือยัง? ฉันมีปัญหาที่คล้ายกัน ถ้าฉันสร้างจาก TFS Team Build ฉันจะได้รับข้อผิดพลาดเดียวกัน อย่างไรก็ตามฉันสามารถสร้างได้ดีจาก VS 2013 IDE และจากพรอมต์คำสั่ง VS 2013
Ike Starnes

ฉันตรวจสอบรายการซอฟต์แวร์ที่ติดตั้งบน TFS Build Servers ที่นี่: 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

%WINDIR%\Microsoft.NET\Framework\ดูเหมือนว่าMSBuild in จะไม่รู้จักชุดเครื่องมือแพลตฟอร์ม VS2013 (v120)


2
คำตอบนี้กลายเป็นคำตอบที่ถูกต้องสำหรับฉันเมื่อฉันประสบปัญหาเดียวกันกับที่อธิบายไว้ใน OP
Boinst

12
คุณเปลี่ยนเส้นทางไปยัง MSBuild ได้อย่างไร?
rharrison33

คุณกำลังพยายามทำอะไร?
Kevin Richardson

2
@ rharrison33 เมื่อฉันใช้พรอมต์คำสั่ง VS2013 จึงใช้ msbuild เวอร์ชันที่ถูกต้อง การเรียกใช้พรอมต์คำสั่ง VS2012 ใช้ตำแหน่ง msbuild ที่ไม่ถูกต้อง ไม่แน่ใจจริงๆว่าทำไม VS2013 ถึงติดตั้งพรอมต์คำสั่ง VS2012 แต่เป็นสิ่งที่ต้องระวัง ...
Jim Geurts

1
การสร้างด้วยชุดเครื่องมือ v120 เหมาะสำหรับฉันในพรอมต์คำสั่ง VS2012 เมื่อฉันใช้C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe.
Kevin Richardson

69

หากคุณใช้ Visual 2012 ให้คลิกขวาที่ชื่อโครงการ -> คุณสมบัติ -> คุณสมบัติการกำหนดค่า -> ทั่วไป -> ชุดเครื่องมือแพลตฟอร์ม -> Visual Studio 2012 (v110)


1
สิ่งนี้แก้ไขได้ในกรณีของฉัน ฉันลองใช้ VS2013 แล้วพบปัญหานี้เมื่อฉันกลับไปที่ VS2012 โปรดทราบว่าคุณต้องทำสิ่งนี้สำหรับทุกโครงการในโซลูชัน
J. Peterson

โพสต์นี้พร้อมวิธีแก้ปัญหาและทิศทางที่ชัดเจนและง่ายต่อการปฏิบัติ .. น่าเสียดายที่ปี 2012 ยังคงให้ข้อผิดพลาดมากมายหลังจากที่ฉันแก้ไขปัญหา v110 นั้นแล้ว .. ฉันสามารถเรียกใช้รหัส C เดียวกันกับที่ทำงานในปี 2013 ได้โดยไม่มีปัญหา แต่ 2012 ยังสามารถจัดการเพื่อค้นหาข้อผิดพลาด 2012 ทำให้การเข้ารหัสช้าลงซึ่งเป็นเหตุผลว่าทำไมฉันถึงใช้ 2013 ในตอนนี้
T. Webster

เปลี่ยนชุดเครื่องมือแพลตฟอร์มและเวอร์ชัน Windows SDK ทำงานแล้ว!
Fırat Esmer


7

ในการเพิ่มคำตอบของ Kevin และ Lex:

เรามีสถานการณ์คล้าย ๆ กันในที่ทำงานซึ่งทั้งนักพัฒนาและบิลด์เซิร์ฟเวอร์มี Visual Studio 2013 โซลูชันของเรามีโปรเจ็กต์ VS 2013 C ++ และคอมไพล์ได้ดีเมื่อสร้างบนเครื่องของผู้พัฒนาหรือบนเซิร์ฟเวอร์บิลด์ภายใน IDE ปัญหาคือเมื่อทริกเกอร์บิวด์โดยใช้คำจำกัดความของการสร้าง TFS เรายังคงใช้เทมเพลตการสร้างแบบเก่า (เวอร์ชัน 11.1) แทน 12.0 โชคดีที่การเพิ่มแอตทริบิวต์ง่ายๆในไฟล์ xaml template ช่วยแก้ปัญหานี้ได้ ในส่วนลำดับ "คอมไพล์โครงการ" มีโหนด xaml ที่ขึ้นต้นด้วย

mtbwa:MSBuild CommandLineArgument=....

คุณสามารถเพิ่มแอตทริบิวต์ "ToolPath" และชี้ไปยังเส้นทางที่ถูกต้องของ MSBuild.exe ที่คุณต้องการเรียกใช้ตามคำตอบของ Kevin ตัวอย่างเช่น:

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

4

หากต้องการเพิ่มคำตอบของ Louis:

หรือคุณสามารถใช้แอตทริบิวต์ได้ToolVersion="12.0"หากคุณใช้ Visual Studio 2013 แทนที่จะใช้ToolPathแอตทริบิวต์ เยี่ยมชมรายละเอียด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 "

ด้วยความระมัดระวังฉันลองทำตามคำแนะนำ: เลือกโซลูชันใน Solution Explorer จากนั้นคลิกในรายการเมนู "อัปเดต VC ++" นี่เป็นการอัปเดตบางอย่างและเริ่มการสร้างซึ่งประสบความสำเร็จ

รายการเมนู "อัปเดต VC ++" จะไม่ปรากฏในเมนูโซลูชันอีกต่อไป


1

ฉันมีปัญหาที่คล้ายกันเมื่อฉันลบ VS 2013 community Update 5 และเปลี่ยนไปใช้ VS 2015 community edition

และปัญหาที่ได้รับในโครงการ windows phone 8.1 ที่มันบ่นว่าไม่มีชุดเครื่องมือ msbuild ที่ถูกต้องและเกี่ยวกับตัวเลียนแบบที่ไม่ได้ติดตั้งแม้ว่าจะเป็นเช่นนั้นก็ตาม

ฉันรู้ว่าต้นตอของปัญหาคือการตั้งค่าชุมชน VS 2013 ที่ถูกทิ้งไว้โดยการถอนการติดตั้งครั้งสุดท้ายซึ่งทำให้ทุกอย่างยุ่งสำหรับฉันแม้ว่ากระบวนการถอนการติดตั้งจะราบรื่นโดยไม่มีปัญหาใด ๆ จากแผงควบคุม

ฉันพยายามอย่างเต็มที่ที่จะลบไฟล์ใด ๆ ที่เหลืออยู่ แต่ก็ยังมีบางอย่างเหลืออยู่เสมอ

และสิ่งเดียวที่แก้ไขให้ฉันคือการติดตั้ง windows 10 x64 ใหม่หลังจากนั้นฉันติดตั้ง VS 2015 community edition และนั่นแหล่ะ !! ไม่มีข้อผิดพลาดสำหรับฉันอีกต่อไปและโปรแกรมจำลอง wp8.1 ก็ทำงานได้ดีเช่นกัน !!

ในกรณีของฉันตอนนี้ฉันแน่ใจอย่างสมบูรณ์แล้วว่าการตั้งค่าการติดตั้งวิชวลสตูดิโอก่อนหน้านี้ทำให้ทุกอย่างยุ่งเหยิงสำหรับฉันและเนื่องจากไม่มีวิธีใดที่ฉันพบและพยายามลบไฟล์ชุมชน VS 2013 และการตั้งค่าทั้งหมดฉันต้องจ่ายราคาและติดตั้งใหม่ ระบบปฏิบัติการของฉัน

คุณอาจหลีกเลี่ยงการติดตั้งระบบปฏิบัติการใหม่ได้หากคุณสามารถหาวิธีลบไฟล์การติดตั้ง Visual Studio ล่าสุดได้อย่างสมบูรณ์

PS: ลองใช้วิธีแก้ปัญหานี้เท่านั้น (ติดตั้งระบบปฏิบัติการใหม่) หลังจากที่คุณลองทุกวิถีทางก่อนแล้วหากไม่มีอะไรได้ผลจากนั้นให้ทำวิธีนี้เป็นทางเลือกสุดท้าย


รับข้อผิดพลาดนี้ด้วยการติดตั้งใหม่ของ VS 2015 Community Microsoft ไม่มีเส้นทางที่ถูกต้องสำหรับ x64
Michaelangel007

0

ใน VS2013 เพื่อตั้งค่าโปรเจ็กต์ทั้งหมดเพื่อแก้ไขเครื่องมือสร้างคุณสามารถคลิกขวาที่โซลูชันในตัวสำรวจโซลูชันและเลือก "กำหนดเป้าหมายโซลูชัน" มันจะเปลี่ยน progect ทั้งหมด (ทั้งหมดที่คุณตรวจสอบด้วยช่องทำเครื่องหมายในกล่องโต้ตอบที่เปิดอยู่) ดังนั้นข้อผิดพลาดจะหายไป


พยายามแล้ว ไม่ช่วยในกรณีของฉันกับ VS Community 2015: - /
Michaelangel007

0

ในกรณีของฉันฉันคลิกสองครั้งที่ไฟล์ Visual 2013 sln และ Visual 2012 เปิดขึ้น (แทนที่จะเป็น Visual 2013) การพยายามคอมไพล์ด้วย Visual 2012 โปรเจ็กต์ที่ตั้งค่า Platform Toolset เป็น "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 Community (MSBuild 14) สร้างแอป c ++ ต้องการใช้เครื่องมือ VS 2010 (v100) ทุกอย่างลงมาทำให้ msbuild เป็นตัวเลือกการกำหนดค่าที่ไม่ถูกต้อง แปลก.

ดังนั้นตรวจสอบตัวเลือกและพารามิเตอร์เหล่านั้นอีกครั้ง


0

หากคุณใช้เครื่องกำเนิดไฟฟ้าเช่น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 ที่ถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.