मैं कौन सा संस्करण # C का उपयोग कर रहा हूं


191

मैं यह जानना चाहता हूं कि C # का कौन सा संस्करण उपयोग कर रहा हूं। यदि मैं अजगर का उपयोग कर रहा हूँ तो मैं python -Vकमांड लाइन या टाइप से कुछ करूँगा :

import sys
print sys.version

PHP में मैं ऐसा कुछ करूँगा: phpinfo(); जावा में:java -version

लेकिन मैं यह नहीं पा रहा था कि इसे C # में कैसे प्राप्त किया जाए।

यह प्रश्न इसका जवाब नहीं देता है, हालांकि नाम से पता चलता है कि इसे होना चाहिए।

मुझे लगता है कि यह .NET फ्रेमवर्क पर निर्भर करता है, लेकिन क्या मेरे ढांचे का पता लगाने का एक प्रोग्रामेटिक तरीका है? मेरा मतलब है कि निर्देशिका में जाने के बिना और मेरे .NET फ़ोल्डरों के नाम की जांच करना।



5
दृश्य स्टूडियो में: प्रोजेक्ट गुण> बिल्ड> उन्नत ...> भाषा संस्करण: codeproject.com/Tips/865579/…
Slai

जवाबों:


65

फ्रेमवर्क का संस्करण प्राप्त करने के लिए - मुख्य असेंबली में से किसी एक के संस्करण को देखें

 Console.Write(typeof(string).Assembly.ImageRuntimeVersion);

C # संकलक का संस्करण प्राप्त करना कुछ कठिन है, लेकिन आपको यह जाँचने में सक्षम होना चाहिए कि कौन सा ढाँचा संस्करण उपयोग किया गया है।

यदि आप कमांड लाइन कंपाइलर (csc.exe) का उपयोग कर रहे हैं, तो आप संस्करण को देखने के लिए मदद की जांच कर सकते हैं (वैसे भी आपको फ्रेमवर्क संस्करण को जानना होगा:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /?
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1

22
दुर्भाग्य से असेंबली ।mageRuntimeVersion आपको सही संस्करण संख्या नहीं बताता है - मेरे पीसी पर, .NET 4.6 RC स्थापित है, लेकिन असेंबली ।mageRuntimeVersion
मैट

1
जब तक आप C # 6 का उपयोग नहीं कर रहे हैं जो .NET संस्करण को नहीं देखता है।
माइकल पिकेट द्वितीय

2
पुन: मैट की टिप्पणी: सिर्फ इसलिए कि आपके पास अपने पीसी पर .NET का एक संस्करण स्थापित है, इसका मतलब यह नहीं है कि आपकी परियोजना में उपयोग में संस्करण है
LoJo

@ लोजो - तुम बिलकुल सही हो। एक कारण यह है कि विज़ुअल स्टूडियो मल्टी-टारगेटिंग की अनुमति देता है (अर्थात आप प्रोजेक्ट प्रॉपर्टीज में .NET टारगेट फ्रेमवर्क संस्करण का चयन कर सकते हैं), दूसरा कारण यह है कि नए रोसलिन संस्करणों को आपके प्रोजेक्ट में NUGET के माध्यम से जोड़ने की आवश्यकता है। तीसरा, जैसा कि मैंने यहां लिखा है , csc.exe संस्करण 5.0 तक सीमित है और इसका उपयोग C # के उच्च संस्करणों का पता लगाने के लिए नहीं किया जा सकता है।
मैट

3
किसी ने अभी तक यह उल्लेख नहीं किया है कि आपके रोजलिन कंपाइलर द्वारा समर्थित संस्करणों की सूची प्राप्त करने का सही निर्देश "C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Community \ MSBuild \ 15.0 \ Bin \ Roslyn \ cc.exe" है। / langversion :?
डेविड ए। ग्रे

233

यह उस पर निर्भर करता है .NET Frameworkजिसका आप उपयोग करते हैं। संस्करणों के बारे में जॉन स्कीट के उत्तर की जाँच करें ।

यहाँ उसके उत्तर का संक्षिप्त संस्करण है।

.NET 1.0 के साथ C # 1.0 जारी किया गया

सी # 1.2 (विचित्र रूप से पर्याप्त); .NET 1.1 के साथ जारी किया गया

.NET 2.0 के साथ C # 2.0 जारी किया गया

.NET 3.5 के साथ C # 3.0 जारी किया गया

.NET 4 के साथ C # 4.0 जारी किया गया

.NET 4.5 के साथ C # 5.0 जारी किया गया

.NET 4.6 के साथ C # 6.0 जारी किया गया

C # 7.0 को .NET 4.6.2 के साथ जारी किया गया है

C # 7.3 को .NET 4.7.2 के साथ जारी किया गया है

C # 8.0 को NET Core 3.0 के साथ जारी किया गया है


13
... और C # 6.0 .NET 4.6 के
मैट

4
बिलकुल चौकन्ना; C # 6 एक अलग संकलक (रोसलिन) का उपयोग करता है और अन्य .NET संस्करणों के लिए स्रोत कोड का संकलन करेगा। न केवल .NET 4.6।
माइकल पिकेट द्वितीय

6
... और C # 7.0 को .NET 4.6.2 के
Jivan

12
लेकिन आप .NET 2.0 को C # 7.0 कंपाइलर से कंपाइल कर सकते हैं। .NET संस्करण की जाँच एक बहुत ही सीमित कटौती है और केवल एक संभावित उत्तर देता है।
हाबिल

5
मुझे @ एबेल की टिप्पणी से जोड़ते हैं कि यह लिंक आपको दिखाता है कि आप फ्रेमवर्क से स्वतंत्र रूप से C # भाषा संस्करण (लगभग) कैसे बदल सकते हैं। इसलिए आप केवल उन सिंटैक्स त्रुटियों से कटौती कर सकते हैं जो आपको मिल रही हैं कि कोड सी # का एक नया संस्करण मानता है, जैसा कि आपने गुणों में चुना होगा।
मैट

87

हालांकि यह सीधे आपके प्रश्न का उत्तर नहीं दे रहा है, मैं इसे यहाँ डाल रहा हूँ क्योंकि जब मैं इस जानकारी की तलाश कर रहा था तो Google ने मेरी खोजों में यह पृष्ठ सबसे पहले लाया।

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

यहां छवि विवरण दर्ज करें


6
मेरे पास क्या संस्करण है यदि ड्रॉप डाउन में मैं देखता हूं Automatically selected based on framework versionऔर ड्रॉपडाउन से कुछ भी नहीं चुन सकता है (यह अक्षम है)? मैं वीएस 2019 का उपयोग कर रहा हूं।
हेलोवर्ल्ड

@hellouworld पर क्लिक करें मैं एक अलग सी # संस्करण हाइपरलिंक का चयन क्यों नहीं कर सकता हूं और वेब पेज आपको संदर्भ प्रदान करेगा ... फिर एप्लिकेशन टैब पर वापस जाएं और देखें कि आपके द्वारा चयनित लक्ष्य रूपरेखा क्या है।
जॉनी वू

8

रजिस्ट्री के माध्यम से .NET संस्करण

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ बच्चों का पता लगाने और प्रत्येक संस्करण में देखो। कुंजी 'पूर्ण' वाला सिस्टम पर संस्करण है।

https://support.microsoft.com/en-us/kb/318785 https://msdn.microsoft.com/en-us/library/hh925568(v=vs.110).aspx

Visual Studio के माध्यम से .NET संस्करण

सहायता -> Microsoft Visual Studio के बारे में -> .NET संस्करण शीर्ष दाईं ओर निर्दिष्ट किया गया है।

जैसा कि मैं इस समय समझता हूं कि दृश्य स्टूडियो ओएस से .NET फ्रेमवर्क का उपयोग करता है।

Visual Studio में किसी प्रोजेक्ट के लक्ष्य .NET फ्रेमवर्क संस्करण को प्रोजेक्ट गुण -> अनुप्रयोग -> लक्ष्य फ़्रेमवर्क के साथ संशोधित किया जा सकता है

के माध्यम से

यदि आप .NET फ्रेमवर्क निर्देशिका को जानते हैं, जैसे C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319

System.dll खोलें, राइट क्लिक करें -> गुण -> विवरण टैब

सी # संस्करण

सहायता -> Microsoft Visual Studio के बारे में

स्थापित उत्पादों की सूची में विजुअल C # है। मेरे मामले में विजुअल C # 2015

Visual Studio (Microsoft) जहाजों C # को Visual C # नाम से।

https://msdn.microsoft.com/en-us/library/hh156499.aspx

C # 6, Visual Studio .NET 2015 वर्तमान संस्करण, नीचे देखें


7

आपके द्वारा उपयोग किया जा रहा C # संस्करण .Net संस्करण जो आप उपयोग कर रहे हैं, पर निर्भर करता है।

यदि आप विकास के लिए दृश्य स्टूडियो का उपयोग कर रहे हैं, तो आपको .net फ्रेमवर्क संस्करण का चयन करने के लिए मिलता है c # संस्करण इससे जुड़ा हुआ है तदनुसार

ये C # ज्ञात के संस्करण हैं:

  • .NET 1.0 और VS2002 के साथ C # 1.0 जारी किया गया (जनवरी 2002)
  • सी # 1.2 (विचित्र रूप से पर्याप्त); .NET 1.1 और VS2003 (अप्रैल 2003) के साथ जारी किया गया। कॉल करने के लिए सबसे पहले संस्करण Disposeपर IEnumeratorरों जो लागू किया IDisposable। कुछ अन्य छोटी विशेषताएं।
  • .NET 2.0 और VS2005 (नवंबर 2005) के साथ C # 2.0 जारी किया गया । प्रमुख नई विशेषताएं: जेनरिक, अनाम विधियां, अशक्त प्रकार, पुनरावृत्त ब्लॉक
  • .NET 3.5 और VS2008 (नवंबर 2007) के साथ C # 3.0 जारी किया गया । प्रमुख नई विशेषताएं: लंबोदर भाव, विस्तार विधियां, अभिव्यक्ति पेड़, अनाम प्रकार, अंतर्निहित टाइपिंग ( var), क्वेरी अभिव्यक्ति
  • .NET 4 और VS2010 (अप्रैल 2010) के साथ C # 4.0 जारी किया गया । प्रमुख नई विशेषताएं: देर से बाध्यकारी ( dynamic), प्रतिनिधि और इंटरफ़ेस जेनेरिक विचरण, अधिक COM समर्थन, नामित तर्क और वैकल्पिक पैरामीटर
  • अगस्त 2012 में .NET 4.5 के साथ C # 5.0 जारी किया गया ।

रिफ्रेंस जॉन स्कीट के सी # संस्करण उत्तर


U .NET 2.0 में C # 3.0 से कुछ सुविधाओं का उपयोग कर सकता है, इसलिए यह वास्तव में 1-1 मैपिंग नहीं है।
नेफरल

13
यह गलत है - यह .NET संस्करण पर निर्भर नहीं करता है, यह कंपाइलर पर निर्भर करता है।
markmnl

यह स्पष्ट गलत है। मेरा वर्तमान प्रोजेक्ट .NET 4.0 पर सेट है और फिर भी मैं C # 7.0 सुविधाओं का उपयोग करने में सक्षम हूं। लेकिन एक बार जब मैं रिमोट पर धकेल देता हूं तो CI / CD सिस्टम बनाने में असफल रहा क्योंकि यह C # संस्करण 5 या 6 का उपयोग करता है
phuclv

यह सी # 6.0 के बाद से सच नहीं है
asaf92

6

डिफ़ॉल्ट रूप से विज़ुअल स्टूडियो के लिए C # कंपाइलर्स का संगत संस्करण है:

  1. विजुअल स्टूडियो 2015: C # 6.0
  2. विजुअल स्टूडियो 2013: सी # 5.0
  3. विजुअल स्टूडियो 2012: सी # 5.0
  4. दृश्य स्टूडियो 2010: सी # 4.0
  5. विजुअल स्टूडियो 2008: सी # 3.0
  6. विजुअल स्टूडियो 2005: C # 2.0
  7. Visual Studio.NET 2003: C # 1.2
  8. Visual Studio.NET 2002: C # 1.0

आप नीचे दिए चरणों का पालन करके संस्करण को संशोधित भी कर सकते हैं।

परियोजना गुण विंडो खोलें:

step 1. Right click on the Project Name
step 2. Select "Properties" (last option in menu)
step 3. Select "Build" from left hand side options and scroll till down
step 4. click on "Advance" button.
step 5. It will open a popup and there you will get "Language Version" dropdown
step 6. Select desired version of C# and Click "OK"

5

डेवलपर कमांड प्रॉम्प्ट प्रकार से

csc -langversion:?

यह डिफ़ॉल्ट सहित समर्थित सभी C # संस्करण प्रदर्शित करेगा:

1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)

5

@Fortesl और इस उत्तर के लिए धन्यवाद

मैं वीएस 2019 का उपयोग कर रहा हूं और यह आसानी से आपको सी # संस्करण का उपयोग नहीं कर रहा है। मैं .Net Core 3.0 और VS 2019 के साथ उस वातावरण में C # 8 का उपयोग कर काम कर रहा हूं। लेकिन "csc -langversion :?" यह स्पष्ट करता है:

D:\>csc -langversion:?
Supported language versions:
default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0 (default)
latestmajor
preview
latest

निश्चित नहीं है कि csc -version क्या पहचान रहा है:

D:\>csc --version
Microsoft (R) Visual C# Compiler version 3.4.0-beta1-19462-14 (2f21c63b)
Copyright (C) Microsoft Corporation. All rights reserved.

ऐसा लगता है कि ओपी को कोडिंग से संबंधित उत्तर की आवश्यकता है
bradbury9

4

यदि आप VS2015 का उपयोग कर रहे हैं तो उसी का पता लगाने के लिए नीचे दिए गए चरणों का पालन करें:

  1. प्रोजेक्ट पर राइट क्लिक करें।
  2. गुण टैब पर क्लिक करें ।
  3. गुण विंडो से बिल्ड विकल्प चुनें।
  4. इसमें एडवांस बटन पर क्लिक करें।
  5. वहां आपको भाषा संस्करण मिलेगा।

नीचे दी गई छवियां उसी के लिए चरण दिखाती हैं:

चरण 1:

चरण 1

चरण 2:

चरण 2


3

VC # के संकलित संकलक संस्करण को देखने के लिए:

Visual Studio कमांड प्रॉम्प्ट खोलें और बस csc टाइप करें फिर Enter दबाएँ।

आप कुछ इस तरह देखेंगे:

Microsoft (R) विज़ुअल C # कंपाइलर संस्करण 4.0.30319.34209

Microsoft (R) .NET फ्रेमवर्क 4.5 के लिए

कॉपीराइट (C) Microsoft Corporation। सभी अधिकार सुरक्षित।

पुनश्च: " सी शार्प कंपाइलर " के लिए " सीएससी " स्टैंड । वास्तव में इस कमांड का उपयोग करके आप csc.exe चलाते हैं जो एक निष्पादन योग्य फ़ाइल है जो "c: \ Windows \ Microsoft.NET \ फ्रेमवर्क \ vX.X.XXX" में स्थित है। CSC के बारे में अधिक जानकारी के लिए http://www.file.net/process/csc.exe.html पर जाएं


3

विंडोज के लिए, आप कमांड / सर्च प्रोग्राम लाइन पर dev चलाते हैं और VS के लिए Developer Command Prompt का चयन करते हैं। फिर आप बस चलाने जा रहे हैं

csc

अब आपको इसके समान जानकारी मिलती है

Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Copyright (C) Microsoft Corporation. All rights reserved.   

विंडोज के लिए और यदि आप cmd टर्मिनल से शुरू करते हैं

cd C:\Windows\Microsoft.NET\Framework\
dir

अब आप .NET \ फ्रेमवर्क \ में सभी निर्देशिकाओं और फाइलों को देखते हैं, कृपया v चुनें ... नवीनतम और वहां जाएं, उदाहरण के लिए,

cd v4.0.30319

Daud

csc

आप सी # संकलक के संस्करण के बारे में जानकारी देखेंगे, जो कुछ इसी तरह का हो सकता है

Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

1

डिफ़ॉल्ट रूप से परियोजना के लक्ष्य ढांचे के आधार पर भाषा संस्करण चुना जाता है।

प्रत्येक परियोजना .Net फ्रेमवर्क के एक अलग संस्करण का उपयोग कर सकती है, लक्ष्य फ्रेमवर्क को देखकर सबसे उपयुक्त सी # कंपाइलर को डिफ़ॉल्ट रूप से चुना जाएगा। दृश्य स्टूडियो से, यूआई उपयोगकर्ताओं को भाषा संस्करण को बदलने की अनुमति नहीं देगा, हालांकि, हम परियोजना फ़ाइल को नए संपत्ति समूह के साथ संपादित करके भाषा संस्करण बदल सकते हैं। लेकिन इससे मौजूदा कोड में संकलन / रन टाइम समस्याएँ हो सकती हैं।

<PropertyGroup>  
<LangVersion>8.0</LangVersion>  
</PropertyGroup>

मैं Microsoft डॉक्स से निम्नलिखित देख सकता हूं।

कंपाइलर इन नियमों के आधार पर एक डिफ़ॉल्ट निर्धारित करता है:

Target framework  version     C# language version default
.NET Core           3.x         C# 8.0
.NET Core           2.x         C# 7.3
.NET Standard       2.1         C# 8.0
.NET Standard       2.0         C# 7.3
.NET Standard       1.x         C# 7.3
.NET Framework      all         C# 7.3

0

यहां बताया गया है कि .NET फ्रेमवर्क और कंपाइलर संस्करण कैसे संबंधित, सेट और संशोधित हैं। प्रत्येक प्रोजेक्ट में एक लक्ष्य .NET फ्रेमवर्क संस्करण है, उदाहरण के लिए संस्करण 3.x या 2.x। .NET फ्रेमवर्क में रन टाइम प्रकार और घटक होते हैं।

Visual Studio संस्करण की स्थापना और .NET फ्रेमवर्क संस्करण संगत c # भाषा संस्करण और संकलक विकल्प निर्धारित करता है जिसका उपयोग किया जा सकता है। विज़ुअल स्टूडियो प्रोजेक्ट में उपयोग किया जाने वाला डिफ़ॉल्ट c # संस्करण और विकल्प नवीनतम भाषा संस्करण है जो .NET फ्रेमवर्क संस्करण के उपयोग के साथ संगत है।

Visual Studio 2011 के भीतर किसी प्रोजेक्ट के भीतर फ्रेमवर्क या C # भाषा को देखने या अपडेट करने के लिए:

  • समाधान एक्सप्लोरर के भीतर परियोजना पर राइट क्लिक करें और गुण का चयन करें
  • बाएं नेविगेशन फलक में 'एप्लिकेशन' चुनें। लक्ष्य ढांचे के तहत: .NET फ्रेमवर्क संस्करण है। सभी उपलब्ध फ्रेमवर्क संस्करणों को देखने के लिए नीचे तीर का चयन करें।

  • बाएं नेविगेशन फलक में 'बिल्ड' चुनें। 'भाषा संस्करण:' के आगे फलक के 'सामान्य' खंड में, c # संकलक भाषा संस्करण का उपयोग किया जा रहा है, उदाहरण के लिए 'डिफ़ॉल्ट' या c # 5.0

  • 'भाषा संस्करण: "ड्रॉपडाउन में सभी उपलब्ध भाषा संस्करणों को देखने के लिए नीचे तीर का चयन करें। यदि' डिफ़ॉल्ट 'c # संस्करण का उपयोग किया जा रहा है, तो नवीनतम संगत c # भाषा संस्करण का उपयोग किया जाएगा।

'डिफ़ॉल्ट' के लिए सटीक संकलक भाषा संस्करण देखने के लिए, अपने इंस्टॉल किए गए विज़ुअल स्टूडियो संस्करण के लिए डेवलपर कमांड प्रॉम्प्ट में निम्नलिखित दर्ज करें। उदाहरण के लिए, विंडोज स्टार्ट आइकन से आइकन का चयन करें: "डेवलपर कमांड प्रॉम्प्ट VS2011 के लिए 'और दर्ज करें:

csc -langversion: डिफ़ॉल्ट

Microsoft (R) विजुअल C # कंपाइलर संस्करण 4.7.3062.0 c # 5 के लिए


0

कोड से C # संस्करण प्राप्त करने के लिए, .NET फ्रेमवर्क संस्करण को प्राप्त करने के लिए Microsoft कोड से इस कोड का उपयोग करें और फिर उस तालिका का उपयोग करके मिलान करें जिसे अन्य सभी उल्लेख करते हैं। आप किसी शब्दकोश में फ्रेमवर्क को C # संस्करण मानचित्र में कोड कर सकते हैं या वास्तव में अपने फ़ंक्शन को C # संस्करण वापस कर सकते हैं। अगर आपके पास .NET फ्रेमवर्क> = 4.5 है तो काम करता है।

using System;
using Microsoft.Win32;

public class GetDotNetVersion
{
   public static void Main()
   {
      Get45PlusFromRegistry();
   }

   private static void Get45PlusFromRegistry()
   {
      const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";

      using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
      {
        if (ndpKey != null && ndpKey.GetValue("Release") != null) {
            Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int) ndpKey.GetValue("Release"))}");
        }
         else {
            Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
         } 
      }

      // Checking the version using >= enables forward compatibility.
      string CheckFor45PlusVersion(int releaseKey)
      {
         if (releaseKey >= 528040)
            return "4.8 or later";
         if (releaseKey >= 461808)
            return "4.7.2";
         if (releaseKey >= 461308)
            return "4.7.1";
         if (releaseKey >= 460798)
            return "4.7";
         if (releaseKey >= 394802)
            return "4.6.2";
         if (releaseKey >= 394254)
            return "4.6.1";      
         if (releaseKey >= 393295)
            return "4.6";      
         if (releaseKey >= 379893)
            return "4.5.2";      
         if (releaseKey >= 378675)
            return "4.5.1";      
         if (releaseKey >= 378389)
            return "4.5";      
         // This code should never execute. A non-null release key should mean
         // that 4.5 or later is installed.
         return "No 4.5 or later version detected";
      }
   }
}   
// This example displays output like the following:
//       .NET Framework Version: 4.6.1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.