Delen via


Zo kunt u detecteren of .NET Framework 3.5 is geïnstalleerd

Voordat beheerders WPF-toepassingen (Windows Presentation Foundation) kunnen implementeren op een systeem dat gericht is op .NET Framework 3.5, moeten ze eerst controleren of de .NET Framework 3.5-runtime aanwezig is. Dit onderwerp bevat een script dat is geschreven in HTML/JavaScript die beheerders kunnen gebruiken om te bepalen of .NET Framework 3.5 aanwezig is op een systeem.

Opmerking

Zie .NET Framework installeren voor ontwikkelaarsvoor meer gedetailleerde informatie over het installeren, implementeren en detecteren van .NET Framework.

Voorbeeld

Wanneer .NET Framework 3.5 is geïnstalleerd, voegt de MSI '.NET CLR' en het versienummer toe aan de UserAgent-tekenreeks. In het volgende voorbeeld ziet u een script dat is ingesloten in een eenvoudige HTML-pagina. Het script doorzoekt de UserAgent-tekenreeks om te bepalen of .NET Framework 3.5 is geïnstalleerd en geeft een statusbericht weer in de resultaten van de zoekopdracht.

Opmerking

Dit script is ontworpen voor Internet Explorer. Andere browsers bevatten mogelijk geen .NET CLR-informatie in de UserAgent-tekenreeks.

<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>

Als de zoekactie voor de versie .NET CLR is geslaagd, wordt het volgende type statusbericht weergegeven:

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).

Anders wordt het volgende type statusbericht weergegeven:

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).

Zie ook