2016-01-29 3 views
18

मैं संभावित सी # 7 भविष्य की भाषा सुविधाओं के साथ प्रयोग करना चाहता हूं।Roslyn विशेषताएं/पैटर्न शाखा (सी # 7) - प्रायोगिक भाषा सुविधाओं को कैसे सक्षम करें

मेरे पास एक वर्चुअल मशीन है जिसमें मैंने Roslyn codebase (फीचर्स/पैटर्न शाखा) डाउनलोड की है और Roslyn के github पर वर्णित के रूप में बनाया गया है: Building and Testing on Windows

मैं विजुअल स्टूडियो के एक नए प्रयोगात्मक उदाहरण को सफलतापूर्वक आग लगा सकता हूं (स्टार्टअप प्रोजेक्ट और रन के रूप में VisualStudioSetup सेट करें)।

जब मैं नई भाषा सुविधाओं (पैटर्न मिलान और स्थानीय कार्यों) मैं एक टेढ़ा-मेढ़ा है और यह भी त्रुटि के रूप में संपादक में कोई त्रुटि मिलती है की कोशिश जब मैं निर्माण:

Pattern matching error squiggly

Local function error squiggly

त्रुटि CS8058 फ़ीचर 'स्थानीय फ़ंक्शंस' प्रयोगात्मक है और असमर्थित है; सक्षम करने के लिए '/ विशेषताएं: स्थानीय फ़ंक्शन' का उपयोग करें।

त्रुटि CS8058 फ़ीचर 'पैटर्न मिलान' प्रयोगात्मक है और असमर्थित है; सक्षम करने के लिए '/ विशेषताएं: पैटर्न' का उपयोग करें।

मैं इन विकल्पों को कहां रखूं?

मैंने इसे कमांड लाइन तर्क में जोड़ने का प्रयास किया, लेकिन मुझे एक त्रुटि मिली।

Roslyn Args

Roslyn Args Error

+2

मुझे यह अभी मिला: https://github.com/dotnet/roslyn/issues/7509 प्रोजेक्ट फ़ाइलों के माध्यम से प्रयोगात्मक भाषा सुविधाओं को सक्षम करने में असमर्थ। मेरे जैसा ही मुद्दा। मुझे आश्चर्य है कि कैसे Roslyn टीम नई भाषा सुविधाओं की कोशिश करता है? – Edward

+0

ऐसा लगता है कि आपको कमांड लाइन के माध्यम से भी उन्हें पास करने में सक्षम होना चाहिए, जैसे कि 'डेवेनव/फीचर्स: लोकलफंक्शन/जड़फिक्स रोज़लिनडेव', लेकिन यह केवल "अमान्य कमांड लाइन। अज्ञात स्विच: विशेषताएं: लोकलफंक्शन" _ दिखाई देता है। यह पता लगाने के लिए कि आपने जो मुद्दा जोड़ा है, वह विस्तार से है (यदि मैं इसे सही तरीके से व्याख्या कर रहा हूं)। सुनिश्चित नहीं है कि आप इसके आसपास कैसे काम करेंगे। –

+0

आप ध्वज को डेवेनव में नहीं पारित कर सकते हैं। –

उत्तर

5

यह bug 7812 है कि मैं अभी तक तय नहीं किया है। माफ़ कीजिये।

आंतरिक रूप से, कंपाइलर टीम ज्यादातर यूनिट परीक्षण या कमांड लाइन कंपाइलर के माध्यम से चीजों का परीक्षण करती है; अगर हम वास्तव में आईडीई का परीक्षण करने की आवश्यकता है तो हम फीचर ध्वज में गुजरने वाले चेक को हटा दें।

+2

मेरी रक्षा में, मैं आज इसे ठीक करना शुरू कर रहा था। :-) –

+0

मुझे नई भाषा सुविधाओं को सक्षम करने का एक तरीका मिला (मेरा अपना जवाब देखें), इसलिए पसीना न करें। एक दुष्प्रभाव के रूप में मैंने प्रक्रिया में बहुत कुछ सीखा। यह आश्चर्यजनक है! – Edward

3

मुझे नई भाषा सुविधाओं को सक्षम करने का तरीका मिला।

कोड का पता लगाकर मैंने पाया कि सुविधा जांच कहाँ की गई है (फ़ंक्शन IsFeatureEnabled) और इसे हमेशा सही करने के लिए बदल दिया।

फिर मैंने पहले की तरह कमांड लाइन से पुनर्निर्मित किया। और इसके बाद जब मैं प्रयोगात्मक विजुअल स्टूडियो उदाहरण को आग लगाता हूं तो नई भाषा सुविधाएं सक्षम होती हैं।

से पहले:

Feature Breakpoint

के बाद:

internal bool IsFeatureEnabled(MessageID feature) 
{ 
    // Force all demo features: 
    return true; 

    // in "demo" mode enable all language features. 
    if (PreprocessorSymbols.Contains("__DEMO__")) 
    { 
     return true; 
    } 
+0

हाँ, हमने कुछ डेमो के लिए भी आंतरिक रूप से किया है। :-) –

+0

अच्छा चाल आदमी! –

4

क्षमा करें, मैं आर & डी ने कहा कि कोड आप डाउनलोड किया है के साथ नहीं किया है।

लेकिन विजुअल स्टूडियो '15' पूर्वावलोकन (30 मार्च 2016 को घोषित) में मैंने इसे बहुत आसानी से तय कर दिया है। यह अन्य लोगों की मदद कर सकता है।

मैं त्रुटि हो रही थी

त्रुटि CS8058 फ़ीचर 'स्थानीय कार्यों' प्रयोगात्मक और असमर्थित है; सक्षम करने के लिए '/ विशेषताएं: स्थानीय फ़ंक्शन' का उपयोग करें।

इस अपने प्रोजेक्ट के नाम और दाएँ क्लिक >> गुण विंडो >> बनाएं का चयन करें ठीक करने के लिए और फिर __DEMO __, __ DEMO_EXPERIMENTAL__

enter image description here

"सशर्त संकलन प्रतीकों" पाठ बॉक्स में दो विकल्प नीचे जोड़ने

इसे सहेजने के लिए सहेजें बटन पर क्लिक करें। अब अपना आवेदन बनाएं और आपका निर्माण सफल हो जाएगा।

हालांकि मेरी अंत में अगर मैं जोड़ने __DEMO__ & __DEMO_EXPERIMENTAL__ में से किसी एक तो यह ठीक काम कर रहा है।

+0

वीएस2015 अपडेट 3 एंटरप्राइज़ के साथ और अधिक काम नहीं कर रहा है। – AKS

+0

यह विजुअल स्टूडियो 2015 के साथ काम नहीं कर सकता है, सी # 7 विजुअल स्टूडियो 2017 के साथ पेश किया गया था। कृपया विजुअल स्टूडियो उत्पाद का नाम और इसके संस्करण से भ्रमित न हों। विजुअल स्टूडियो 15.x विजुअल स्टूडियो 2017 को संदर्भित करता है। विजुअल स्टूडियो 2017 का नवीनतम संस्करण विजुअल स्टूडियो 15.6 है जो सी # 7, सी # 7.1 और सी # 7.2 का भी समर्थन करता है। –

+0

वर्जनिंग के बारे में अधिक समझने के लिए कृपया नीचे दिए गए लिंक का संदर्भ लें http://www.c-sharpcorner.com/article/visual-studio-15-preview- फर्स्ट-look-C-Sharp-7/ –

संबंधित मुद्दे