.net - net fra framework 4.5 download




सबसे अच्छा तरीका निर्धारित करने के लिए यदि.NET 3.5 स्थापित किया गया है (6)

@ कराव, वास्तव में आपके समाधान की तरह। सहायता के लिए धन्यवाद।

रजिस्ट्री का उपयोग करना कोड कुछ ऐसा दिखाई देगा:

RegistryKey key = Registry
        .LocalMachine
        .OpenSubKey("Software\\Microsoft\\NET Framework Setup\\NDP\\v3.5");
return (key != null);

मैं उत्सुक होगा अगर इनमें से कोई एक मध्यम विश्वास के वातावरण में काम करेगा (हालांकि मैं पूर्ण विश्वास में काम कर रहा हूं, इसलिए इससे कोई फर्क नहीं पड़ता कि मैं वर्तमान में क्या कर रहा हूं)।

मुझे प्रोग्रामैटिक रूप से यह निर्धारित करने की आवश्यकता है कि .NET 3.5 स्थापित है या नहीं। मैंने सोचा कि यह आसान होगा:

<% Response.Write(Environment.Version.ToString()); %>

जो "2.0.50727.1434" देता है, इसलिए ऐसा कोई भाग्य नहीं ...

मेरे शोध में मुझे लगता है कि कुछ न कहीं अस्पष्ट रजिस्ट्री कुंजियां हैं जो मैं देख सकती हूं लेकिन मुझे यकीन नहीं है कि अगर यह रास्ता तय करना है क्या किसी के पास कोई सुझाव है?


@कोमराडेकट्ज, इस समाधान की तलाश में दूसरों के लिए सुविधा के लिए MSDN से नीचे आपका समाधान। मुझे यह समाधान पसंद नहीं है क्योंकि यह संस्करण निर्धारित करने के लिए उपयोगकर्ता एजेंट का उपयोग करता है। यह मेरे लिए क्या ज़रूरी नहीं है (मैं एक क्लास लाइब्रेरी लिख रहा हूं जिसकी जानना है कि क्या .NET 3.5 स्थापित है)। मैं यह भी सवाल करता हूं कि यह समाधान कितना विश्वसनीय साबित हो सकता है

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<HTML>
  <HEAD>
    <TITLE>Test for the .NET Framework 3.5</TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var dotNETRuntimeVersion = "3.5.0.0";

    function window::onload()
    {
      if (HasRuntimeVersion(dotNETRuntimeVersion))
      {
        result.innerText = 
          "This machine has the correct version of the .NET Framework 3.5."
      } 
      else
      {
        result.innerText = 
          "This machine does not have the correct version of the .NET Framework 3.5." +
          " The required version is v" + dotNETRuntimeVersion + ".";
      }
      result.innerText += "\n\nThis machine's userAgent string is: " + 
        navigator.userAgent + ".";
    }

    //
    // Retrieve the version from the user agent string and 
    // compare with the specified version.
    //
    function HasRuntimeVersion(versionToCheck)
    {
      var userAgentString = 
        navigator.userAgent.match(/.NET CLR [0-9.]+/g);

      if (userAgentString != null)
      {
        var i;

        for (i = 0; i < userAgentString.length; ++i)
        {
          if (CompareVersions(GetVersion(versionToCheck), 
            GetVersion(userAgentString[i])) <= 0)
            return true;
        }
      }

      return false;
    }

    //
    // Extract the numeric part of the version string.
    //
    function GetVersion(versionString)
    {
      var numericString = 
        versionString.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
      return numericString.slice(1);
    }

    //
    // Compare the 2 version strings by converting them to numeric format.
    //
    function CompareVersions(version1, version2)
    {
      for (i = 0; i < version1.length; ++i)
      {
        var number1 = new Number(version1[i]);
        var number2 = new Number(version2[i]);

        if (number1 < number2)
          return -1;

        if (number1 > number2)
          return 1;
      }

      return 0;
    }

    -->
    </SCRIPT>
  </HEAD>

  <BODY>
    <div id="result" />
  </BODY>
</HTML>

मेरे मशीन पर यह आउटपुट देता है:

इस मशीन में .NET Framework 3.5 का सही संस्करण है।

इस मशीन के उपयोगकर्ता एजेंट स्ट्रिंग है: मोज़िला / 4.0 (संगत; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; InfoPath.2; .NET CLR 1.1.4322; .NET CLR 3.5 .21022; ज़्यून 2.5)।



एक और दिलचस्प खोज यहां असेंबली की उपस्थिति है:

सी: \ प्रोग्राम फ़ाइलें \ संदर्भ विधानसभाओं \ Microsoft \ फ्रेमवर्क \ v3.5

आपको लगता था कि माइक्रोसॉफ्ट ढांचे में "नवीनतम संस्करण" के लिए एक जांच का निर्माण करेगा।


यदि आप स्थापित करने के लिए .net के एक विशिष्ट संस्करण की आवश्यकता करना चाहते हैं और आपके एप्लिकेशन के वितरण को नियंत्रित कर सकते हैं, तो आपको वास्तव में ClickOnce का उपयोग करना चाहिए यह आपको नेट ढांचे के न्यूनतम आवश्यक संस्करण को निर्दिष्ट करने की अनुमति देता है जिसे इंस्टॉल किया जाना चाहिए, और यह केवल तब जांच की जाएगी जब यह स्थापित किया जा रहा हो ताकि आपके सभी बाद के स्टार्टअप एक अनावश्यक जांच से बाधित न हों।

साथ ही, क्लिकऑन के साथ आप मुफ्त में अपडेट कर सकते हैं। किसी को इसका उपयोग क्यों नहीं करना है?

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


एक विकल्प को 4.0 स्ट्रिंग का उपयोग करने का पता लगाना है:

    Environment.Version.CompareTo(new Version(4, 0));

तब से 2.0 और 2.5 एक सीएलआर संस्करण संख्या साझा करते हैं, इन्हें रजिस्ट्री की जाँच करके डिस्टिब्यूज़ होने की आवश्यकता होती है। चूंकि उन संस्करणों को पहले ही जारी किया गया है, इसलिए देखने के लिए स्ट्रिंग ज्ञात हैं।





registry