विजुअल स्टूडियो 2013 में C # 6.0 सुविधा कैसे सक्षम करें?


201

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

class NewSample
{
    public Guid Id { get; } = Guid.NewGuid();
}

लेकिन मेरे आईडीई ने सिंटैक्स को नहीं पहचाना।

मैं सोच रहा हूं कि मैं विजुअल स्टूडियो 2013 में C # 6.0 कैसे सक्षम कर सकता हूं। मैं जो टारगेट फ्रेमवर्क का उपयोग कर रहा हूं वह 4.5.1 है।


7
मुझे विश्वास नहीं है कि यह 2013 में संभव है। वीएस 14 सीटीपी के बजाय या वीएस 2015 पूर्वावलोकन देखें।

ठीक है, आपको नवीनतम संकलक की आवश्यकता होगी, जो वीएस 2013 का हिस्सा नहीं है, इसलिए मुझे नहीं लगता कि यह संभव है।
रुफस एल

2
ठीक है, मैं सिर्फ यह पता लगाने के लिए देख रहा हूं कि एमएस किसी भी अपडेट को जारी करता है या नहीं
हसनैन

1
@PauloMorgado "उस संस्करण पुराना है" का क्या अर्थ है? 4.5.1, VS2013 या VS2014CTP?
ProfK

2
क्या आप इस सवाल का जवाब @Deef
क्रिस मैरिसिक

जवाबों:


64

पूर्व निर्धारित सॉफ्टवेयर की जानकारी:

के अनुसार इस यह सिर्फ एक स्थापित करने और विजुअल स्टूडियो 2013 के लिए जाना जाता है:

वास्तव में, इस रिलीज़ से C # 6.0 संकलक को स्थापित करने में विजुअल स्टूडियो 2013 एक्सटेंशन को स्थापित करने की तुलना में थोड़ा अधिक है, जो बदले में MSBuild लक्ष्य फ़ाइलों को अपडेट करता है।

तो बस https://github.com/dotnet/roslyn से फ़ाइलें प्राप्त करें और आप जाने के लिए तैयार हैं।

आपको यह जानना होगा कि यह वहां लागू किए गए चश्मे का पुराना संस्करण है, क्योंकि वे विजुअल स्टूडियो 2013 के पैकेज को अपडेट नहीं करते हैं :

आप अप्रैल के अंत उपयोगकर्ता पूर्वावलोकन की भी कोशिश कर सकते हैं, जो विजुअल स्टूडियो 2013 के शीर्ष पर स्थापित है। (ध्यान दें: यह वीएस 2013 पूर्वावलोकन काफी पुराना है, और अब अपडेट नहीं है)

इसलिए यदि आप नवीनतम संस्करण का उपयोग करना चाहते हैं, तो आपको विजुअल स्टूडियो 2015 डाउनलोड करना होगा ।


7
दुर्भाग्य से, बनाम 2013 के लिए अंतिम उपयोगकर्ता पूर्वावलोकन को बंद कर दिया गया है :(
हसनैन

4
बस यह सुनिश्चित करने के लिए, वीएस 2013 का उपयोग करके सी # 6 में लिखने का कोई समर्थित तरीका नहीं है? क्या मुझे वीएस 2015 का उपयोग करना है?
vorou

2
वह सही है। @ थोरो वीएस 2013 के लिए पूर्वावलोकन का कोई हालिया संस्करण नहीं है।
पैट्रिक हॉफमैन

5
वास्तव में, ये एक तरीका है (मेरा उत्तर देखें)। लेकिन यह अंतिम रिलीज से पहले महीनों पहले आप क्या कर सकते हैं, उससे अलग है।
डेविड डे स्लोओवर

1
इस विषय या अन्य समान विषयों में से किसी ने भी मेरी मदद नहीं की। तो चारों ओर केवल काम वी.एस. 2015 के लिए घूम रहा है मुझे लगता है।
यार

177

VS2013 के तहत आप नए संकलक को एक नौगट पैकेज के रूप में प्रोजेक्ट में स्थापित कर सकते हैं । इस तरह आपको VS2015 या अपडेटेड बिल्ड सर्वर की जरूरत नहीं है।

https://www.nuget.org/packages/Microsoft.Net.Compilers/

Install-Package Microsoft.Net.Compilers

पैकेज आपको C # 6.0 कोड / सिंटैक्स का उपयोग / निर्माण करने की अनुमति देता है। क्योंकि VS2013 मूल रूप से नए C # 6.0 सिंटैक्स को नहीं पहचानता है, यह कोड संपादक विंडो में त्रुटियों को दिखाएगा , हालांकि यह ठीक का निर्माण करेगा

Resharper का उपयोग करते हुए, आपको C # 6 सुविधाओं पर स्क्वीजीली लाइनें मिलेंगी, लेकिन बल्ब आपको 'इस परियोजना के लिए C # 6.0 समर्थन सक्षम करें' (.DotSettings पर सहेजी गई सेटिंग) का विकल्प देता है।

जैसा कि @ stimpy77 द्वारा उल्लेख किया गया है: समर्थन में एमवीसी रेजर के विचारों आपको एक अतिरिक्त पैकेज की आवश्यकता होगी (उन लोगों के लिए जो टिप्पणियों को नहीं पढ़ते हैं)

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

यदि आप पूर्ण C # 6.0 समर्थन चाहते हैं, तो आपको VS2015 स्थापित करना होगा।


8
प्राथमिक निर्माणकर्ताओं को वास्तव में अंतिम रिलीज से हटा दिया गया था। इसलिए वे काम नहीं करते।
मार्क ए। डोनोहे

8
केवल MVC5 प्रोजेक्ट में रेजर में C # 6 का उपयोग करने के इच्छुक किसी भी व्यक्ति को इंगित करना चाहते हैं, ऐसा लगता है कि यह एक अलग NuGet पैकेज है, और यहां तक ​​कि अगर आप VS2015 का उपयोग कर रहे हैं, तो भी आवश्यक है। देखें stackoverflow.com/a/30832849/11398
जॉन डेविस

2
यह काम करता है (जैसा कि आप संकलन कर सकते हैं), हालांकि VS2013 अभी भी त्रुटियों को दिखाता है: stackoverflow.com/questions/35796001/…
mnwsmit

2
वह वह था। यह मस्त था। कंपाइलर अग्रिम में त्रुटियों को दिखाता है लेकिन वास्तव में संकलित होने पर सफलतापूर्वक संकलित करता है। सप्ताहांत सुबह शुरू करने के लिए क्या हैक है!
RBT

1
यह कोड संपादक विंडो में त्रुटियां दिखाएगा, हालांकि यह ठीक का निर्माण करेगा। बस इसे फिर से इंगित करने की आवश्यकता महसूस हुई। बहुत बढ़िया जवाब!
meJustAndrew

5

यहां बहुत सारे जवाब रोजलिन से पहले लिखे गए थे (ओपन-सोर्स .NET C # और VB कंपाइलर) से पहले .NET 4.6 पर जाने से । यदि आपका प्रोजेक्ट लक्ष्य, 4.5.2, जैसा कि मेरा किया (विरासत में मिला और बदला नहीं जा सकता) तो वे आपकी मदद नहीं करेंगे।

लेकिन आप रोसलिन के पिछले संस्करण को https://www.nuget.org/packages/Microsoft.Net.Compilers से पकड़ सकते हैं और नवीनतम संस्करण के बजाय स्थापित कर सकते हैं । मैंने 1.3.2 का उपयोग किया। (मैंने 2.0.1 की कोशिश की - जो .NET 4.5 पर चलने वाला अंतिम संस्करण प्रतीत होता है - लेकिन मैं इसे * संकलन करने के लिए नहीं प्राप्त कर सका।) वीएस 2013 में पैकेज मैनेजर कंसोल से इसे चलाएं:

PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2

फिर Visual Studio को पुनरारंभ करें। मुझे शुरू में कुछ समस्याएं हुईं; आपको डिफ़ॉल्ट रूप से C # संस्करण सेट करने की आवश्यकता है (C # 6.0 संस्करण सूची में प्रकट नहीं होता है, लेकिन लगता है कि इसे डिफ़ॉल्ट बना दिया गया है), फिर स्वच्छ, सहेजें, VS को पुनः आरंभ करें और पुन: खोलें।

दिलचस्प बात यह है कि कोड में इस्तेमाल किए गए C # 6.0 फीचर्स (जो पहले स्थान पर C # 6.0 चाहने का कारण थे) के कारण मुझे कोई IntelliSense त्रुटि नहीं हुई।

* संस्करण 2.0.1 त्रुटि फेंक दी "Microsoft.CodeAnalysis.BuildTasks.Csc कार्य असेंबली Microsoft से लोड नहीं किया जा सका। Build.Tasks.CodeAnalysis.dll फ़ाइल या असेंबली को लोड नहीं कर सका। Microsoft .Build.Utilities.Core, संस्करण = 14.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a 'या इसकी कोई एक निर्भरता। सिस्टम निर्दिष्ट फ़ाइल नहीं ढूँढ सकता। पुष्टि करें कि घोषणा सही है, कि असेंबली और उसकी सभी निर्भरताएँ उपलब्ध हैं, और कार्य में एक समाहित है। सार्वजनिक वर्ग जो Microsoft को लागू करता है। Build.Framework.ITask।

अद्यतन एक बात जो मैंने इस उत्तर को पोस्ट करने के बाद से देखी है वह यह है कि यदि आप डिबग ("संपादित करें और जारी रखें") के दौरान किसी भी कोड को बदलते हैं, तो आप पाएंगे कि आपका C # 6.0 कोड अचानक त्रुटियों के रूप में दिखाई देगा जो कि वापस लौटने में लगता है। पूर्व-सी # 6.0 वातावरण। इसके लिए आपके डिबग सत्र को पुनरारंभ करना होगा। विशेष रूप से वेब अनुप्रयोगों के लिए बहुत कष्टप्रद।


@ रिखियनको यह बहुत अच्छा है - प्रतिक्रिया और वोट के लिए धन्यवाद। निजी तौर पर, मुझे समझ नहीं आ रहा है कि v2.0.1 काम क्यों नहीं करता है। अगर किसी के पास इस बारे में कोई सुराग है - जैसा कि मैंने रिपोर्ट की गई त्रुटि से छुटकारा पाकर - कृपया अपना फिक्स पोस्ट करें।
स्टीविन्क

4

यह उल्लेखनीय है कि वीएस 2015 उपयोगकर्ताओं के लिए बिल्ड समय बढ़ाया जाएगा :

Install-Package Microsoft.Net.Compilers

जो लोग वीएस 2015 का उपयोग कर रहे हैं और इस पैकेज को अपनी परियोजनाओं में रखना है, वे बिल्ड समय में सुधार कर सकते हैं

फ़ाइल संपादित करें packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.propsऔर इसे साफ़ करें । फ़ाइल की तरह दिखना चाहिए:

<Project DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

ऐसा करने से एक परियोजना का निर्माण करने के लिए बाध्य हो जाता है क्योंकि यह Microsoft.Net.Compilersपैकेज जोड़ने से पहले था


2

यदि आपके पास Resharper है, तो Visual Studio 2013 में पूर्ण C # 6.0 सुविधाओं का उपयोग करना संभव है।
आपको Resharper Build और voilá को सक्षम करना होगा! Resharper Options में -> Build - enable Resperper Build और "MSBuild.exe वर्जन का उपयोग करें" चुनें "लेटेस्टेड"

इस तरह से Resharper आपके C # 6.0 प्रोजेक्ट्स बनाने जा रहा है और C # 6.0 कोड को अमान्य नहीं माना जाएगा।

मैं भी इसका उपयोग कर रहा हूं, हालांकि मेरे पास Visual Studio 2015 है क्योंकि:

  1. Resharper में यूनिट टेस्ट किसी कारण से विजुअल स्टूडियो 2015 के साथ मेरे लिए काम नहीं करते हैं
  2. वीएस 2015 वीएस 2013 की तुलना में बहुत अधिक मेमोरी का उपयोग करता है।

मैं इसे यहाँ रख रहा हूँ, क्योंकि मैं पिछले कुछ समय से इस समस्या का हल ढूंढ रहा था और शायद यह किसी और की मदद करे।


-1

ऐसा लगता है कि कुछ गलतफहमी है। इसलिए, वीएस २०१३ को एक Microsoft व्यक्ति से यहाँ और उत्तर देने की कोशिश करने के बजाय: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80f-caeb081b878e/will-c-c- 60-कभी होने वाली समर्थित-दर-बनाम 2013? मंच = Roslyn

तो, कृपया, इसे पढ़ें और VS2015 स्थापित करें।


1
लिंक मुझे एमएस लॉगिन के बाद भी 'अधिकृत नहीं' देता है। बेशक, स्थापित करें VS2015 या बाद में एक £ XXX है, कुछ सेटिंग्स में 000s व्यय।
क्रिस एफ कैरोल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.