V120 (प्लेटफ़ॉर्म टूलसेट = 'v120') के लिए उपकरण नहीं मिल सकते हैं


103

विंडोज़ पर दृश्य स्टूडियो 2012 का उपयोग करते हुए 8 x64 निस्संदेह यह msbuild द्वारा स्थानांतरित किए जाने के कारण होता है। लेकिन मैंने यह नहीं देखा कि इसे कैसे ठीक किया जाए।

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(यदि आप पॉवरशेल में हैं, तो &पहले डाल दें \Progr..)। VS2015 के लिए, यह हो जाएगा "\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"और /p:PlatformToolset=v140और इतने पर।
वल्केन रैवेन

जवाबों:


73

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

आप विजुअल C ++ 2012 का उपयोग कर रहे हैं जो v110 है। v120 का मतलब विजुअल C ++ 2013 है।

तो या तो आप टूलसेट v110 का उपयोग करने के लिए प्रोजेक्ट सेटिंग्स बदलते हैं, या आप इस मशीन पर विजुअल स्टूडियो 2013 स्थापित करते हैं और इसे संकलित करने के लिए VS2013 का उपयोग करते हैं।


70
लेकिन, लेकिन ... मुझे अपनी मशीन पर वीएस 2013 स्थापित होने के बावजूद यह त्रुटि मिली है!
टिम लवेल-स्मिथ 15

5
क्या आपने इसे हल किया? मैं इसी तरह के मुद्दे पर चल रहा हूं। यदि मैं टीएफएस टीम बिल्ड से निर्माण करता हूं, तो मुझे वही त्रुटि मिलती है। हालाँकि, मैं VS 2013 IDE से और VS 2013 कमांड प्रॉम्प्ट से फाइन का निर्माण कर सकता हूं।
आइक Starnes

मैंने यहाँ TFS बिल्ड सर्वर पर स्थापित सॉफ्टवेयर की सूची की जाँच की: listofsoftwareontfshostedbuildserver.azurewebooks.net जहाँ मैं यह काम करूँगा (मुझे संदेह है कि यह निर्माण करना चाहिए लेकिन मुझे अभी तक इसकी कोशिश नहीं करनी पड़ी है)। मैं ध्यान देता हूं कि वीएस 2013 वास्तव में स्थापित नहीं है, केवल इसके कुछ बिट्स हैं।
Redeemed1

6
मैंने वीएस 2013 को बिल्ड सर्वर पर स्थापित किया और अभी भी समस्या है।
Redeemed1

4
ध्यान दें कि आपके समाधान में कई परियोजनाएं हो सकती हैं। इसलिए, प्रोजेक्ट पर राइट-क्लिक करके (समाधान नहीं) -> कॉन्फ़िगरेशन गुण-> सामान्य-> प्लेटफ़ॉर्म टूलसेट (यह VS2013 पर है)
पिक्सेल

84

यदि आपके पास VS2013 स्थापित है और यह त्रुटि हो रही है, तो आप गलत MSBuild को आमंत्रित कर सकते हैं। VS2013 के साथ, Microsoft अब Visual Studio के हिस्से के रूप में MSBuild को शामिल करता है। देखें इस दृश्य स्टूडियो ब्लॉग पोस्टिंग जानकारी के लिए।

विशेष रूप से, बायनेरिज़ के नए स्थान पर ध्यान दें:

32-बिट मशीनों पर उन्हें इसमें पाया जा सकता है: C: \ Program Files \ MSBuild \ 12.0 \ bin

64-बिट मशीनों पर 32-बिट उपकरण निम्न होंगे: C: \ Program Files (x86) \ MSBuild \ _.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 कमांड प्रॉम्प्ट क्यों स्थापित किया, लेकिन इसके लिए कुछ देखना होगा ...
जिम ज्यूरेट्स

1
V120 टूलसेट के साथ बिल्डिंग मेरे लिए VS2012 कमांड प्रॉम्प्ट में काम करता है जब मैं उपयोग करता हूं C:\Program Files (x86)\MSBuild\12.0\bin\MSbuild.exe
केविन रिचर्डसन

69

यदि आप दृश्य 2012 का उपयोग कर रहे हैं तो प्रोजेक्ट नाम पर राइट क्लिक करें -> गुण -> कॉन्फ़िगरेशन गुण -> सामान्य -> ​​प्लेटफ़ॉर्म टूलसेट -> विज़ुअल स्टूडियो 2012 (v110)


1
इससे मेरे मामले में हल हो गया। मैंने VS2013 का उपयोग करने की कोशिश की, फिर इस मुद्दे पर भाग गया जब मैं VS2012 में वापस गया। ध्यान दें कि आपको समाधान में प्रत्येक परियोजना के लिए यह करना होगा।
पीटर पर जे पीटरसन

एक समाधान और निर्देशों के साथ यह पोस्ट इतनी स्पष्ट और आसानी से पालन की जाती है .. बहुत बुरा 2012 अभी भी मुझे त्रुटियों का ढेर देता है, मैंने v110 समस्या को ठीक करने के बाद .. मैं मुद्दों के बिना 2013 में समान सी कोड चलाता हूं, लेकिन 2012 अभी भी त्रुटियों को खोजने का प्रबंधन कर सकता है। 2012 कोडिंग को धीमा कर देता है, यही वजह है कि मैं अब केवल 2013 का उपयोग करता हूं।
टी। वेबस्टर

परिवर्तित प्लेटफ़ॉर्म टूलसेट और विंडोज एसडीके संस्करण। काम किया!
फ्यरत एसमर


7

केविन और लेक्स के उत्तरों को जोड़ने के लिए:

हमारे पास काम पर एक समान स्थिति थी जहां डेवलपर्स और बिल्ड सर्वर दोनों के पास विजुअल स्टूडियो 2013 था। हमारे समाधान में वीएस 2013 सी ++ प्रोजेक्ट था और डेवलपर की मशीन पर या आईडीई के भीतर बिल्ड सर्वर पर निर्मित होने पर ठीक संकलित किया गया था। मुद्दा तब था जब TFS बिल्ड परिभाषाओं का उपयोग करके ट्रिगर बनाता है। हम 12.0 के बजाय अभी भी एक पुराने बिल्ड टेम्पलेट (संस्करण 11.1) का उपयोग कर रहे थे। सौभाग्य से, टेम्पलेट xaml फ़ाइल के लिए एक साधारण विशेषता के अलावा समस्या हल हो गई। अनुक्रम भाग "प्रोजेक्ट को संकलित करें" में, एक xaml नोड है जो इसके साथ शुरू होता है

mtbwa:MSBuild CommandLineArgument=....

आप एक "टूलपैथ" विशेषता जोड़ सकते हैं और इसे केविन के जवाब के आधार पर MSBuild.exe के सही पथ पर इंगित कर सकते हैं। उदाहरण के लिए:

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

4

लुई उत्तर तक जोड़ने के लिए:

वैकल्पिक रूप से आप विशेषता का उपयोग कर सकते हैं ToolVersion="12.0"यदि आप विशेषता का उपयोग करने के बजाय दृश्य स्टूडियो 2013 का उपयोग कर रहे हैं ToolPath। विवरण http://msdn.microsoft.com/en-us/library/dd647548.aspx पर जाएं

तो आप पूर्ण पथ का उपयोग करने के लिए मजबूर नहीं हैं।


4

इस पर 4+ घंटे बर्बाद हुए।

मेरे पास विज़ुअल स्टूडियो 2017 एंटरप्राइज है , परियोजनाओं में से एक में त्रुटि है:

V120 (प्लेटफ़ॉर्म टूलसेट = 'v120') के लिए उपकरण नहीं मिल सकते हैं

उपरोक्त त्रुटि को हल करने के लिए, मैंने नीचे सभी को स्थापित करने का प्रयास किया:

हालांकि, उपरोक्त में से कोई भी काम नहीं किया।

बाद में, विजुअल स्टूडियो 2013 अल्टीमेट स्थापित किया , फिर सभी ने ठीक काम किया।

लगता है, पुराने विज़ुअल स्टूडियो को इसे हल करना चाहिए।

आशा करता हूँ की ये काम करेगा।


3

एक VS2013 सी ++ परियोजना VS2015 में खोला जाता है, और वहाँ के बारे में "V120 के लिए निर्माण उपकरण ... नहीं पाया जा सकता है" चेतावनी कर रहे हैं, मैं बस को संपादित करने के .vcxproj फ़ाइल और परिवर्तन की जरूरत <PlatformToolset>v120</PlatformToolset>के लिए <PlatformToolset>v140</PlatformToolset>, और करीब है और समाधान फिर से खोलने के ।


1

वीएस 2012 में, मुझे "SMB2 का निर्माण नहीं होगा: त्रुटि 1 त्रुटि MSB8020: विजुअल स्टूडियो 2010 के लिए उपकरण बनाता है (प्लेटफ़ॉर्म टूलसेट = 'v100') नहीं मिल सकता है। v100 बिल्ड टूल का उपयोग करने के लिए, या तो प्रोजेक्ट मेनू पर क्लिक करें। या समाधान को राइट-क्लिक करें, और उसके बाद "अद्यतन VC ++ प्रोजेक्ट्स अद्यतन करें ..." Visual Studio 2010 उपकरण का उपयोग कर बनाने के लिए Visual Studio 2010 स्थापित करें। "

हवा को सावधानी से फेंकते हुए, मैंने सुझाव दिया: समाधान एक्सप्लोरर में समाधान का चयन किया, फिर "अपडेट वीसी +++" मेनू आइटम पर क्लिक किया। इसने कुछ अद्यतन किया और फिर एक निर्माण शुरू किया जो सफल रहा।

"अद्यतन VC ++" मेनू आइटम अब समाधान मेनू में दिखाई नहीं देता है।


1

जब मैं वीएस 2013 समुदाय अपडेट 5 को हटा दिया और वीएस 2015 समुदाय संस्करण पर स्विच किया तो मुझे एक समान समस्या थी

और समस्या विंडोज फोन 8.1 परियोजनाओं में अधिग्रहित की गई जहां उसने सही एमएसबिल्ट टूलसेट नहीं होने के बारे में शिकायत की और एमुलेटर स्थापित नहीं होने पर भी।

मुझे पता है कि समस्या का स्रोत वीएस 2013 समुदाय सेटिंग्स था जिसे उस अंतिम अनइंस्टॉल द्वारा छोड़ दिया गया है जिसने मेरे लिए सब कुछ गड़बड़ कर दिया, भले ही स्थापना रद्द करने की प्रक्रिया नियंत्रण कक्ष से कोई समस्या न हो।

मैंने पूरी कोशिश की कि बची हुई कोई भी फाइल निकाल दूं लेकिन हमेशा कोई न कोई चीज बची रहती थी।

और क्या केवल मेरे लिए यह तय एक ताजा विंडोज़ 10 x64 की स्थापना है, तो इसके बाद मैंने वीएस 2015 समुदाय संस्करण स्थापित किया है और यही है !! मेरे और wp8.1 एमुलेटर के लिए कोई और त्रुटि ठीक नहीं है !!

मेरे मामले में अब मुझे पूरी तरह से यकीन है कि पिछले दृश्य स्टूडियो स्थापित सेटिंग्स ने मेरे लिए सब कुछ गड़बड़ कर दिया है और क्योंकि मेरे पास कोई रास्ता नहीं मिला है और वीएस 2013 की सामुदायिक फ़ाइलों और सेटिंग्स को पूरी तरह से मिटाने की कोशिश की गई थी और मुझे इसके लिए कीमत चुकानी पड़ी और फिर से स्थापित करना पड़ा। मेरे ओएस।

यदि आप पिछले दृश्य स्टूडियो स्थापित फ़ाइलों को पूरी तरह से मिटाने का तरीका पा सकते हैं, तो आप ओएस रीइंस्टॉल से बचने में सक्षम हो सकते हैं।

पुनश्च: केवल इस समाधान का प्रयास करें (ओएस पुनः स्थापित करें) के बाद आप हर संभव तरीके से पहले प्रयास करें अगर कुछ भी नहीं और केवल तब ... इस समाधान को अंतिम उपाय के रूप में बनाएं।


वीएस 2015 समुदाय की एक नई स्थापना के साथ यह त्रुटि हो रही है । Microsoft के पास x64 के लिए सही पथ नहीं हैं।
माइकल

0

VS2013 में बिल्ड टूल्स को सही करने के लिए सभी प्रोजेक्ट स्थापित करने के लिए, आप सॉल्यूशन एक्सप्लोरर में समाधान पर राइट क्लिक करें और "रिटारगेट सॉल्यूशन" चुनें। यह सभी प्रोगेक्ट्स को बदल देगा (आप सभी खुले हुए संवाद में चेकबॉक्स के साथ जांचते हैं), इसलिए त्रुटि दूर हो जाएगी।


कोशिश की है कि। वीएस कम्युनिटी 2015 के साथ मेरे मामले में मदद नहीं करता है: - /
माइकल

0

मेरे मामले में, मैंने विज़ुअल 2013 एसएलएन फ़ाइल को डबल-क्लिक किया है और विज़ुअल 2012 खोला (विज़ुअल 2013 के बजाय)। विज़ुअल 2012 के साथ संकलित करने की कोशिश करते हुए, एक प्रोजेक्ट जिसमें प्लेटफ़ॉर्म टूलसेट को "v120" पर सेट किया गया है, ऊपर उल्लिखित त्रुटि दिखाया गया है। हालाँकि, दृश्य 2013 के साथ स्लाइन को फिर से खोलते हुए, प्लेटफ़ॉर्म टूलसेट को "विज़ुअल स्टूडियो 2013 (v120)" पर सेट किया गया था - कृपया इस बार पूरा नाम नोट करें -, वास्तव में मेरे लिए काम किया था। परियोजना अब अच्छी तरह से संकलित है।


0

मुझे VS2015 में USBView प्रोजेक्ट के निर्माण में समान त्रुटि मिल रही थी। मैंने "प्लेटफ़ॉर्म टूलसेट 'सेटिंग को" विज़ुअल स्टूडियो 2015 (v140) "और समाधान पर (वीएस2015 में) पर राइट क्लिक करके और' रिटारगेट सॉल्यूशन 'का चयन करके और उस डायलॉग पर 10.0.10240.0 का चयन करके इस त्रुटि को हटा दिया।

ऐसा लगता है कि Microsoft से ProjectUpgradeTool भी है जो कि VS2012 VS पोस्ट करने के लिए अपग्रेड करने के लिए पुरानी परियोजनाओं को बदलने के लिए माना जाता है, लेकिन मैं अपनी मशीन पर उस टूल का पता नहीं लगा सका।

मैं अभी भी की मदद से कुछ नए लिंकर त्रुटि को ठीक करने के लिए है इस


0

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। VS 2015 कम्युनिटी (MSBuild 14) एक c ++ ऐप का निर्माण, VS 2010 (v100) टूल्स का उपयोग करना चाहता था। यह सब एक अवैध विन्यास विकल्प msbuild देने के नीचे आया था। अजीब।

तो, उन सभी विकल्पों और मापदंडों को फिर से जाँचें।


0

यदि आप cmake, JUCE, आदि जैसे जनरेटर का उपयोग करते हैं , तो एक सही VS संस्करण लक्ष्य (2013, 2015, 2017) सेट करने का प्रयास करें और समाधान को फिर से बनाएं


0

मैं कुछ परियोजना के निर्माण के दौरान एक ही मुद्दे का सामना कर रहा था।

मैंने विज़ुअल स्टूडियो 2015 IDE का उपयोग किया, वहां यह ठीक काम कर रहा था, लेकिन PowerShell स्क्रिप्ट से निर्माण करते समय, यह टूलसेट संबंधित दे रहा था "v140 के लिए बिल्ड टूल (प्लेटफ़ॉर्म टूलसेट = '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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.