विजुअल स्टूडियो 2015 के साथ C # 7 का उपयोग कैसे करें?


146

विजुअल स्टूडियो 2017 (15.x) C # 7 का समर्थन करता है, लेकिन विज़ुअल स्टूडियो 2015 (14.x) का क्या?

मैं इसके साथ C # 7 का उपयोग कैसे कर सकता हूं?


2
इस लिंक को देखें: strathweb.com/2016/03/…
सुनील कुमार

8
@ सुनीलकुमार: यह उन्हें वीएस 15 (जो वीएस 2017 है) में सक्षम कर रहा है। इसमें कहीं भी वीएस 2015 (जो वीएस 14 है) का उल्लेख नहीं है।
जॉन स्कीट

जवाबों:


162

आप Nuget पैकेज Microsoft.Net.Compp स्थापित करके C # 7-सक्षम संस्करण के लिए Visual Studio के साथ संकलित कंपाइलर को बदल सकते हैं :

इस पैकेज को संदर्भित करने से किसी भी सिस्टम स्थापित संस्करण के विपरीत, पैकेज में निहित C # और विज़ुअल बेसिक कंपाइलर्स के विशिष्ट संस्करण का उपयोग करके प्रोजेक्ट का निर्माण किया जाएगा।

ऐसा कोई संकेत नहीं है कि मैं पैकेज पृष्ठ पर देख सकता हूं कि क्या यह विजुअल स्टूडियो 2015 में आधिकारिक रूप से समर्थित है। मेरे अब तक के पूर्ण परीक्षण से संकेत मिलता है कि यह काम करता है लेकिन दर्द रहित नहीं - C # 7 कोड संकलित करता है, लेकिन लाल रंग से रेखांकित होता है टेढ़ा-मेढ़ा रेखा है जो एक सिंटैक्स त्रुटि इंगित करता है: स्क्रीनशॉटध्यान दें कि आप भी Nuget पैकेज स्थापित करने की आवश्यकता होगी System.ValueTuple नई सी # 7 मूल्य tuples सुविधाओं का उपयोग करने।


9
उस स्थिति में VIsual Studio Code का उपयोग करना बेहतर होगा, या केवल Visual Studio 2017 समुदाय स्थापित करें
Panagiotis Kanavos

3
यह जानना अच्छी बात है। इसलिए आप धीरे-धीरे कुछ परियोजनाओं को VS2017 में बदल सकते हैं, यह जानते हुए कि आपातकालीन स्थिति में अन्य डेवलपर्स आपके कोड के साथ काम कर सकते हैं।
अष्टम

10
ध्यान दें, जब मैं @PanagiotisKanavos के साथ सिद्धांत में सहमत हूं, यदि आपका एक मध्यम या बड़ी कंपनी VS2017 कम्युनिटी एडिशन का कर्मचारी लाइसेंसधारी के रूप में उपयोग किए जाने के लिए मान्य नहीं है। मेरा मानना ​​है कि VS कोड सच FOSS है।
क्रिस मैरिसिक

6
मैंने अपने Xamarin.Forms UWP, Windows 8.1, और Windows Phone 8.1 परियोजनाओं के साथ-साथ नवीनतम System.ValueTuple nuget (साथ ही सभी अन्य सिस्टम का नवीनतम संशोधन। श्रृंखला nugets) के लिए नवीनतम Microsoft.Net.Compilers नौगट स्थापित किया। । बिल्ड और रनटाइम में सब कुछ ठीक काम करता दिखाई देता है। (मैंने डिबगर के फ़ीचर-सेट के हर नुक्कड़ और
क्रैनी

13
VS2015.3, .NET 4.7.1 के लिए संकलन: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- मुझे इस संस्करण का उपयोग करने की आवश्यकता है: इसे बनाने के लिए nuget.org/packages/Microsoft.Net.Compilers/2.4.0 , फिर इसने ठीक काम किया। :)
सीएडी

5

मेरे मामले में, सिर्फ Microsoft.Net.Compilers स्थापित करने से काम नहीं चला। इसके बजाय, मुझे निम्नलिखित कार्य करने थे:

  1. प्रोजेक्ट के लिए Microsoft.CodeDom.Providers.DotNetCompilerPlatform स्थापित करें ( टूल => NuGet Package Manager => समाधान के लिए Nuget पैकेज प्रबंधित करें ... ) और Microsoft.CodeDom.Providers.DotNetPpilerPlatform स्थापित करें ।
  2. प्रोजेक्ट के लिए नवीनतम Microsoft.Net.Compilers स्थापित करें
  3. आपके द्वारा उपयोग किए जाने वाले नवीनतम C # सुविधा के लिए कोई अन्य NuGet पैकेज स्थापित करें। मेरे मामले में, मेरा लक्ष्य tuples का इस्तेमाल किया गया है, इसलिए मैं स्थापित System.ValueTuple और ठीक काम किया।

लेकिन फिर भी ध्यान दें कि सी # कोड जो विज़ुअल स्टूडियो 2015 डिफ़ॉल्ट कंपाइलर द्वारा ज्ञात नहीं हैं, फिर भी नीचे लाल स्क्विगल्स होंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.