다음을 통해 공유


방법: .NET Framework 3.0 설치 여부 확인

Microsoft .NET Framework 애플리케이션을 시스템에 배포하려면 관리자는 먼저 .NET Framework 런타임이 있는지 확인해야 합니다. 이 항목에서는 관리자가 시스템에 .NET Framework가 있는지를 확인하는 데 사용할 수 있는 HTML/JavaScript로 작성한 스크립트를 제공합니다.

참고

Microsoft .NET Framework 설치, 배포 및 검색에 대한 자세한 내용은 Microsoft .NET Framework 버전 3.0 배포를 참조하세요.

".NET CLR" User-Agent 문자열 검색

.NET Framework가 설치되면 MSI는 UserAgent 문자열에 “.NET CLR”과 버전 번호를 추가합니다. 다음 예제에서는 간단한 HTML 페이지에 포함된 스크립트를 보여줍니다. 스크립트는 UserAgent 문자열을 검색하여 .NET Framework 설치 여부를 확인하고 검색 결과에 상태 메시지를 표시합니다.

<HTML>  
  <HEAD>  
    <TITLE>Test for the .NET Framework 3.0</TITLE>  
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />  
    <SCRIPT LANGUAGE="JavaScript">  
    <!--  
    var dotNETRuntimeVersion = "3.0.04425.00";  
  
    function window::onload()  
    {  
      if (HasRuntimeVersion(dotNETRuntimeVersion))  
      {  
        result.innerText =   
          "This machine has the correct version of the .NET Framework 3.0: "   
          + dotNETRuntimeVersion  
      }   
      else  
      {  
        result.innerText =   
          "This machine does not have the correct version of the .NET Framework 3.0."  
      }  
      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” 버전 검색에 성공하면 다음과 같은 유형의 상태 메시지가 나타납니다.

This machine has the correct version of the .NET Framework 3.0: 3.0.04425.00

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04425.00).

그렇지 않으면 다음과 같은 유형의 상태 메시지가 나타납니다.

This machine does not have correct version of the .NET Framework 3.0.

This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727).