दिलचस्प पोस्ट
कीपप्रेस और कीज – कुंजी कोड अलग क्यों है? प्रिंट फ़ंक्शन के लिए कॉमा में क्या समाप्त हो रहा है? पायथन अनुरोधों के साथ अतुल्यकालिक अनुरोध GetView लौटने की नल जब एक गतिविधि से टुकड़ा बनाया गया है डोमेन क्रेडेंशियल्स को कैसे मान्य करें? अनुक्रमितों का सी ++ सॉर्टिंग और रखे जाने का तरीका MySQL क्वेरी, मैक्स () + ग्रुप बाय एनएसएनम्बर का प्रकार प्राप्त करें कैसे माउस क्लिक का पता लगाने के लिए? संख्याओं के एक स्तंभ को जोड़कर बश कमांड php के लिए sqlite3 कैसे सक्षम करें? स्मृति लीक के बिना DOM तत्व कैसे निकालें? क्या जावा में रिवर्स लुकअप के साथ एक हैशमैप है? सीएसएस एक्सेस करें: "बाद में" jQuery के साथ चयनकर्ता एचटीएमएल फार्म टेक्स्टरेआ का मूल्य निर्धारित करना?

मैं कैसे पता लगा सकता हूँ कि क्या .NET फ़्रेमवर्क संस्करण और सर्विस पैक स्थापित हैं?

एक समान प्रश्न यहां पूछा गया था, लेकिन यह नेट 3.5 के लिए विशिष्ट था। विशेष रूप से, मैं निम्न के लिए देख रहा हूं:

  1. यह निर्धारित करने का सही तरीका क्या है कि कौन सा .NET Framework संस्करण और सर्विस पैक स्थापित हैं?
  2. क्या रजिस्ट्री कुंजियों की एक सूची है जिसका उपयोग किया जा सकता है?
  3. क्या फ्रेमवर्क संस्करणों के बीच कोई निर्भरता है?

Solutions Collecting From Web of "मैं कैसे पता लगा सकता हूँ कि क्या .NET फ़्रेमवर्क संस्करण और सर्विस पैक स्थापित हैं?"

रजिस्ट्री का पता लगाने का आधिकारिक तरीका है कि फ्रेमवर्क के एक विशिष्ट संस्करण को स्थापित किया गया है।

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

आपके द्वारा देखे जा रहे फ्रेमवर्क संस्करण के आधार पर कौन सा रजिस्ट्री कुंजियां आवश्यक हैं:

 फ्रेमवर्क संस्करण रजिस्ट्री कुंजी
 -------------------------------------------------- ----------------------------------------
 1.0 HKLM \ Software \ Microsoft \ .NETFramework \ Policy \ v1.0 \ 3705 
 1.1 HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v1.1.4322 \ स्थापित करें 
 2.0 HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v2.0.50727 \ स्थापित करें 
 3.0 HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ़्रेमवर्क सेटअप \ NDP \ v3.0 \ Setup \ InstallSuccess 
 3.5 HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.5 \ Install 
 4.0 क्लाइंट प्रोफाइल HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ Client \ Install
 4.0 पूर्ण प्रोफ़ाइल HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ पूर्ण \ स्थापित करें

आम तौर पर आप इसके लिए देख रहे हैं:

"Install"=dword:00000001 

.NET 1.0 के अलावा, जहां संख्या एक संख्या ( REG_DWORD ) की बजाय एक स्ट्रिंग ( REG_SZ ) है

सेवा पैक स्तर निर्धारित करना एक समान पैटर्न का पालन करता है:

 फ्रेमवर्क संस्करण रजिस्ट्री कुंजी
 -------------------------------------------------- ----------------------------------------
 1.0 HKLM \ सॉफ्टवेयर \ Microsoft \ सक्रिय सेटअप \ स्थापित अवयव \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ संस्करण 
 1.0 [1] HKLM \ सॉफ्टवेयर \ Microsoft \ सक्रिय सेटअप \ स्थापित घटक \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ संस्करण 
 1.1 HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v1.1.4322 \ SP 
 2.0 HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v2.0.50727 \ SP 
 3.0 HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.0 \ SP 
 3.5 HKLM \ Software \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.5 \ SP 
 4.0 क्लाइंट प्रोफाइल HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ ग्राहक \ सर्विसिंग
 4.0 पूर्ण प्रोफ़ाइल HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ पूर्ण \ सर्विसिंग

 [1] विंडोज मीडिया सेंटर या विंडोज़ एक्सपी टैबलेट संस्करण

जैसा कि आप देख सकते हैं, यदि आप Windows मीडिया केंद्र या Windows XP टैबलेट संस्करण पर चल रहे हैं तो .NET 1.0 परिवर्तनों के लिए एसपी स्तर का निर्धारण करना। फिर, .NET 1.0 एक स्ट्रिंग मान का उपयोग करता है, जबकि अन्य सभी DWORD का उपयोग करते हैं।

.NET 1.0 के लिए इन दोनों में से स्ट्रिंग मान में #, #, ####, # का प्रारूप है। अंतिम # सर्विस पैक स्तर है।

हालांकि मैंने स्पष्ट रूप से इसके लिए नहीं पूछा था, यदि आप फ्रेमवर्क के सटीक संस्करण संख्या जानना चाहते हैं तो आप इन रजिस्ट्री कुंजियों का उपयोग करेंगे:

 फ्रेमवर्क संस्करण रजिस्ट्री कुंजी
 -------------------------------------------------- ----------------------------------------
 1.0 HKLM \ सॉफ्टवेयर \ Microsoft \ सक्रिय सेटअप \ स्थापित अवयव \ {78705f0d-e8db-4b2d-8193-982bdda15ecd} \ संस्करण 
 1.0 [1] HKLM \ सॉफ्टवेयर \ Microsoft \ सक्रिय सेटअप \ स्थापित घटक \ {FDC11A6F-17D1-48f9-9EA3-9051954BAA24} \ संस्करण 
 1.1 HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v1.1.4322 
 2.0 [2] HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v2.0.50727 \ संस्करण 
 2.0 [3] HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v2.0.50727 \ वृद्धि
 3.0 HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.0 \ संस्करण 
 3.5 HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v3.5 \ संस्करण 
 4.0 क्लाइंट प्रोफाइल HKLM \ सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ संस्करण 
 4.0 पूर्ण प्रोफ़ाइल HKLM सॉफ्टवेयर \ Microsoft \ NET फ्रेमवर्क सेटअप \ NDP \ v4 \ संस्करण 

 [1] विंडोज मीडिया सेंटर या विंडोज़ एक्सपी टैबलेट संस्करण
 [2] .NET 2.0 SP1
 [3] .NET 2.0 मूल रिलीज़ (आरटीएम)

फिर, .NET 1.0 एक स्ट्रिंग मान का उपयोग करता है, जबकि अन्य सभी DWORD का उपयोग करते हैं।

अतिरिक्त नोट्स

  • .NET 1.0 के लिए इनमें से किसी भी कुंजी पर स्ट्रिंग मान #,#,####,# का प्रारूप है। #,#,#### स्ट्रिंग का भाग फ्रेमवर्क संस्करण है

  • .NET 1.1 के लिए, हम रजिस्ट्री कुंजी के नाम का उपयोग करते हैं, जो संस्करण संख्या का प्रतिनिधित्व करता है।

  • अंत में, यदि आप निर्भरता को देखते हैं, तो .NET 3.0 अतिरिक्त कार्यक्षमता को .NET 2.0 जोड़ देता है, इसलिए दोनों .NET 2.0 और .NET 3.0 दोनों को सही तरीके से स्थापित होने के रूप में विकसित करना चाहिए। यह कहना है कि .NET 3.0 स्थापित है। इसी तरह, .NET 3.5 अतिरिक्त कार्यक्षमता को .NET 2.0 और .NET 3.0, इसलिए .NET 2.0, .NET 3.0, और .NET 3. को सभी को सही तरीके से स्थापित होने के लिए मूल्यांकन करना चाहिए। यह कहना है कि .NET 3.5 स्थापित है।

  • .NET 4.0 CLR (CLR संस्करण 4.0) का एक नया संस्करण स्थापित करता है जो साइड-बाय-साइड को CLR 2.0 के साथ चला सकता है।

.NET 4.5 के लिए अद्यतन

रजिस्ट्री में एक v4.5 कुंजी नहीं होगी यदि .NET 4.5 स्थापित है। इसके बजाय आपको यह देखना होगा कि HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full कुंजी में Release नामक एक मान शामिल है। यदि यह मान मौजूद है, तो .NET 4.5 स्थापित है, अन्यथा ऐसा नहीं है। अधिक जानकारी यहां और यहां मिल सकती है ।

एक आधिकारिक माइक्रोसॉफ्ट के पास इस प्रश्न का निम्नलिखित ज्ञान आधार आलेख है:

आलेख ID: 318785 – अंतिम समीक्षा: 7 नवंबर, 2008 – संशोधन: 20.1 .NET Framework के कौन सा संस्करण स्थापित हैं और यह निर्धारित करने के लिए कि सर्विस पैक लागू किया गया है या नहीं

दुर्भाग्य से, यह काम करने के लिए प्रकट नहीं होता है, क्योंकि 2.0 निर्देशिका में mscorlib.dll संस्करण 2.0 संस्करण है, और 3.0 या 3.5 निर्देशिकाओं में कोई mscorlib.dll संस्करण नहीं है, हालांकि 3.5 एसपी 1 स्थापित है … क्यों क्या आधिकारिक माइक्रोसॉफ्ट का जवाब इतना गलत है?

फ्रेमवर्क 4 बीटा एक अलग रजिस्ट्री कुंजी को स्थापित करता है

 using System; using System.Collections.ObjectModel; using Microsoft.Win32; class Program { static void Main(string[] args) { foreach(Version ver in InstalledDotNetVersions()) Console.WriteLine(ver); Console.ReadKey(); } public static Collection<Version> InstalledDotNetVersions() { Collection<Version> versions = new Collection<Version>(); RegistryKey NDPKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP"); if (NDPKey != null) { string[] subkeys = NDPKey.GetSubKeyNames(); foreach (string subkey in subkeys) { GetDotNetVersion(NDPKey.OpenSubKey(subkey), subkey, versions); GetDotNetVersion(NDPKey.OpenSubKey(subkey).OpenSubKey("Client"), subkey, versions); GetDotNetVersion(NDPKey.OpenSubKey(subkey).OpenSubKey("Full"), subkey, versions); } } return versions; } private static void GetDotNetVersion(RegistryKey parentKey, string subVersionName, Collection<Version> versions) { if (parentKey != null) { string installed = Convert.ToString(parentKey.GetValue("Install")); if (installed == "1") { string version = Convert.ToString(parentKey.GetValue("Version")); if (string.IsNullOrEmpty(version)) { if (subVersionName.StartsWith("v")) version = subVersionName.Substring(1); else version = subVersionName; } Version ver = new Version(version); if (!versions.Contains(ver)) versions.Add(ver); } } } } 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP की उपकुंजियों की गणना करें प्रत्येक उपकुंजी एक .NET संस्करण है। यह Install=1 मूल्य होना चाहिए, अगर यह मशीन पर मौजूद है, एक सपा मान जो सेवा पैक और एक MSI=1 मान दिखाता है कि यह MSI का उपयोग करके स्थापित किया गया था। (Windows Vista में .NET 2.0 उदाहरण के लिए अंतिम नहीं है, क्योंकि यह ओएस का हिस्सा है।)

मैं अपने सिस्टम पर स्थापित .NET संस्करण 4.5.2 की उपस्थिति का पता लगा रहा था, और मुझे एएसओफ़ेट .नेट संस्करण डिटेक्टर की तुलना में कोई बेहतर समाधान नहीं मिला।

इस उपकरण का स्नैपशॉट विभिन्न एनएटी संस्करण दिखा रहा है:

इस टूल का स्नैपशॉट विभिन्न एनएटी संस्करण दिखा रहा है

एफडब्ल्यूआईडब्ल्यू … यहां एक और समाधान है जो वास्तविक दुनिया में व्यापक रूप से परीक्षण किया गया लगता है (लेकिन यह सी में है)

64-बिट OS के लिए, पथ होगा:

 HKEY_LOCAL_MACHINE\SOFTWARE\wow6432Node\Microsoft\NET Framework Setup\NDP\ 

.NET 4.5.1 के लिए अद्यतन

अब जब .NET 4.5.1 उपलब्ध है, रजिस्ट्री में रिलीज की कुंजी नाम के वास्तविक मान की जांच की जानी चाहिए, न सिर्फ इसकी मौजूदगी। 378758 का मान इसका अर्थ है कि .NET Framework 4.5.1 स्थापित है। हालांकि, जैसा कि यहां बताया गया है कि यह मान विंडोज 8.1 पर 378675 है।

एक जीयूआई उपकरण उपलब्ध है, एएसओएफटी.नेट वर्जन डिटेक्टर , जो हमेशा बेहद विश्वसनीय साबित हुआ है। यह कमांड लाइन पर XML आउटपुट के फ़ाइल नाम को निर्दिष्ट करके XML फ़ाइलों को बना सकता है।

आप इसे स्वचालन के लिए इस्तेमाल कर सकते हैं यह एक छोटा कार्यक्रम है, जिसे गैर- .NET निर्भर भाषा में लिखा गया है और स्थापना की आवश्यकता नहीं है।

मुझे यह पता लगाना था कि मेरे कंप्यूटर पर जो .NET ढाँचा का संस्करण था, और मैंने जो किया था, वह नियंत्रण कक्ष में गया और "एक प्रोग्राम अनइंस्टॉल करें" विकल्प का चयन करें। इसके बाद, मैंने कार्यक्रमों को नाम से सॉर्ट किया, और Microsoft .NET Framework 4 क्लाइंट प्रोफाइल को मिला।

यहां स्थापित .NET फ़्रेमवर्क संस्करण प्राप्त करने के लिए एक PowerShell स्क्रिप्ट है

 function Get-KeyPropertyValue($key, $property) { if($key.Property -contains $property) { Get-ItemProperty $key.PSPath -name $property | select -expand $property } } function Get-VersionName($key) { $name = Get-KeyPropertyValue $key Version $sp = Get-KeyPropertyValue $key SP $install = Get-KeyPropertyValue $key Install if($sp) { "$($_.PSChildName) $name SP $sp" } else{ "$($_.PSChildName) $name" } } function Get-FrameworkVersion{ dir "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\" |? {$_.PSChildName -like "v*"} |%{ if( $_.Property -contains "Version") { Get-VersionName $_ } else{ $parent = $_ Get-ChildItem $_.PSPath |%{ $versionName = Get-VersionName $_ "$($parent.PSChildName) $versionName" } } } } $v4Directory = "hklm:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" if(Test-Path $v4Directory) { $v4 = Get-Item $v4Directory $version = Get-KeyPropertyValue $v4 Release switch($version){ 378389 {".NET Framework 4.5"; break;} 378675 {".NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2"; break;} 378758 {".NET Framework 4.5.1 installed on Windows 8, Windows 7 SP1, or Windows Vista SP2"; break;} 379893 {".NET Framework 4.5.2"; break;} { 393295, 393297 -contains $_} {".NET Framework 4.6"; break;} { 394254, 394271 -contains $_} {".NET Framework 4.6.1"; break;} { 394802, 394806 -contains $_} {".NET Framework 4.6.2"; break; } } } 

यह कैसे कैसे करें के आधार पर लिखा गया था : निर्धारित करें कि कौन सा .NET Framework संस्करण इंस्टॉल किए गए हैं स्थापित .NET ढांचे संस्करणों के बारे में जानकारी प्राप्त करने के लिए कृपया Get-FrameworkVersion () फ़ंक्शन का उपयोग करें।

SignumFramework से Signum.Utilities पुस्तकालय का उपयोग करना (जो आप अकेले उपयोग कर सकते हैं), आप इसे अच्छी तरह से और अपने आप से रजिस्ट्री से निपटने के बिना प्राप्त कर सकते हैं:

 AboutTools.FrameworkVersions().ToConsole(); //Writes in my machine: //v2.0.50727 SP2 //v3.0 SP2 //v3.5 SP1 

मैं सभी। नेट फ्रेमवर्क संस्करणों का पता लगाने के लिए रेमंडक .नेट डिटेक्टर (जो https://www.raymond.cc/blog/download/did/1741/ डाउनलोड किया जा सकता है) का उपयोग कर रहा हूँ।

Mscorlib.dll फ़ाइल संस्करण के आधार पर आप संस्करण और सर्विस पैक स्थापित भी कर सकते हैं। Microsoft .NET Framework के संस्करणों और सर्विस पैक स्तरों को स्थापित करने के तरीके का निर्धारण कैसे करें

सिग्नल । यूटिविटी के तरीकों अभी भी एक दिलचस्प तरीके हैं।

विंडोज 7 में (इसे विंडोज 8 के लिए भी काम करना चाहिए, लेकिन मैंने इसका परीक्षण नहीं किया है):

कमांड प्रॉम्प्ट पर जाएं

कमांड प्रॉम्प्ट पर जाने के लिए चरणः

  1. प्रारंभ मेनू पर क्लिक करें
  2. खोज बॉक्स में टाइप करें "cmd" (उद्धरण रहित)
  3. ओपन सीएमडी.एक्सए

सीएमडी में, यह कमांड टाइप करें

 wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version 

यह संस्थापित एनईटी फ्रेमवर्क का नवीनतम संस्करण देता है।

कोई भी इसके लिए रेमंड। सीसी यूरीलेटिज की भी कोशिश कर सकता है।

कैसे देखें : निर्धारित करें कि किस .NET Framework संस्करणों को स्थापित किया गया है (MSDN)।

एमएसडीएन एक फ़ंक्शन का उदाहरण पेश करता है जो संस्करण 1-4 के लिए नौकरी कर रहा है। लेख के अनुसार, विधि आउटपुट है:

 v2.0.50727 2.0.50727.4016 SP2 v3.0 3.0.30729.4037 SP2 v3.5 3.5.30729.01 SP1 v4 Client 4.0.30319 Full 4.0.30319 

ध्यान दें कि "संस्करण 4.5 और बाद के संस्करण" के लिए एक और समारोह है

रजिस्ट्री (.NET Framework 4.5 और बाद के संस्करण) को देखने के द्वारा .NET Framework संस्करण खोजें – कैसे देखें : निर्धारित करें कि किस .NET Framework संस्करणों को स्थापित किया गया है (MSDN)।