2011-02-23 14 views
6

मैं सी # एप्लिकेशन से खुद कैसे जांच सकता हूं, एप्लिकेशन द्वारा डॉटनेट का किस संस्करण का उपयोग किया जा रहा है?मेरे डॉटनेट संस्करण की पहचान करें

+0

क्या आपका मतलब एप्लिकेशन द्वारा आवश्यक न्यूनतम संस्करण था? (प्रोजेक्ट फ़ाइल में TargetFrameworkVersion attr) –

+0

असल में मुझे वर्तमान एप्लिकेशन ढांचे के पथ की आवश्यकता है। मेरे एप्लिकेशन को मौजूदा चल रहे संस्करण से कुछ exe निष्पादित करने की आवश्यकता है। यानी, यदि मेरा एप्लिकेशन 2.0 का उपयोग कर रहा है तो यह .net 2.0 फ़ोल्डर से exe चुन देगा और यदि 4 का उपयोग कर रहा है तो यह .NET 4.0 फ़ोल्डर से exe चुनेंगे। – hungryMind

उत्तर

12

Environment.Version का उपयोग करें - यह आपको एप्लिकेशन चलाने वाले .NET का सटीक संस्करण देता है।

एक संस्करण ऑब्जेक्ट प्राप्त करता है जो सामान्य भाषा रनटाइम के प्रमुख, नाबालिग, निर्माण और संशोधन संख्याओं का वर्णन करता है।


पता लगाने के लिए ढांचे का कौन सा संस्करण स्थापित किया गया है, this तो सवाल और जवाब देखें। एक अखरोट खोल में, आपको रजिस्ट्री में खोदने की आवश्यकता होगी।

+3

क्या यह 3.5, 3.0 और 2.0 के बीच अंतर कर सकता है? (रनटाइम वही है, 2.0.something) – xanatos

+0

@xanatos - नहीं, यह नहीं कर सकता। यह रनटाइम संस्करण वापस करेगा। यदि आपको यह पता होना चाहिए कि इंस्टॉल किया गया है, तो [यह] देखें (http://stackoverflow.com/questions/199080/how-to-detect-what-net-framework-versions-and-service-packs-are-installed) तो सवाल और जवाब। – Oded

6

आप उपयोग कर सकते हैं:

Environment.Version 

.NET रनटाइम की संस्करण संख्या प्राप्त करने के लिए।

0

एक कंसोल अनुप्रयोग इस वर्ग को जोड़ने बनाएँ और चलाने यह

using Microsoft.Win32; 
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 

    namespace ConsoleApplication2 
    { 
     public class GetDotNetVersion 
     { 
      public static void Get45PlusFromRegistry() 
    { 
     const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"; 
     using (RegistryKey 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 >= will enable forward compatibility. 
    private static string CheckFor45PlusVersion(int releaseKey) 
    { 
     if (releaseKey >= 394802) 
      return "4.6.2 or later"; 
     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. 
     // that 4.5 or later is installed. 
     return "No 4.5 or later version detected"; 
    } 
} 
// Calling the GetDotNetVersion.Get45PlusFromRegistry method produces 
// output like the following: 
//  .NET Framework Version: 4.6.1 
} 
+0

इस मुद्दे के जवाब के साथ कुछ स्पष्टीकरण जोड़ें कि इस मुद्दे को वर्तमान समस्या को ठीक करने में ओपी की मदद कैसे करें –

0

अपने दृश्य स्टूडियो में, उपकरण के लिए> Nutget पैकेज प्रबंधन> पैकेज प्रबंधक कंसोल dotnet में टाइप करें --version जाना और यहाँ आप जाओ!

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