Nasıl kurulur: .NET Framework 3.5'in Yüklü Olup Olmadığını Algılama

Yöneticilerin Windows Presentation Foundation 3.5'i hedef alan bir sistemde .NET Framework (WPF) uygulamaları dağıtamadan önce .NET Framework 3.5 çalışma zamanının mevcut olduğunu onaylamaları gerekir. Bu konu, yöneticilerin sistem üzerinde 3.5'in mevcut olup olmadığını belirlemek için kullanabileceği HTML/JavaScript .NET Framework bir betik sağlar.

Not

Uygulamayı yükleme, dağıtma ve algılama hakkında daha ayrıntılı bilgi .NET Framework bkz. Geliştiriciler için .NET Framework yükleme.

Örnek

3.5 .NET Framework, MSI UserAgent dizesine ".NET CLR" ve sürüm numarasını ekler. Aşağıdaki örnek, basit bir HTML sayfasına eklenmiş bir betiği gösterir. Betik, UserAgent dizesinde arama .NET Framework 3.5'in yüklü olup olmadığını belirler ve aramanın sonuçlarında bir durum iletisi görüntüler.

Not

Bu betik, Internet Explorer. Diğer tarayıcılar UserAgent dizesinde .NET CLR bilgilerini içermeyebilirsiniz.

<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 CLR" sürümü için arama başarılı olursa, aşağıdaki durum iletisi türü görüntülenir:

This machine has the correct version of the .NET Framework 3.5.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.0.590; .NET CLR 3.5.20726; MS-RTC LM 8).

Aksi takdirde, aşağıdaki durum iletisi türü görüntülenir:

This machine does not have the correct version of the .NET Framework 3.5. The required version is v3.5.0.0.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 3.0.590; MS-RTC LM 8).

Ayrıca bkz.