Cómo: Detectar si .NET Framework 3.0 está instalado
Actualización: noviembre 2007
Antes de que los administradores puedan implementar aplicaciones Microsoft .NET Framework en un sistema, deben confirmar primero que está presente el tiempo de ejecución de .NET Framework. En este tema se proporciona un script escrito en HTML/JavaScript que los administradores pueden utilizar para determinar si .NET Framework está presente en un sistema.
Nota
Para obtener información más detallada sobre la instalación, implementación y detección de Microsoft .NET Framework, vea la explicación del artículo Deploying Microsoft .NET Framework Version 3.0.
Detectar la cadena de agente de usuario ".NET CLR"
Cuando se instala .NET Framework, el archivo MSI agrega ".NET CLR" y el número de versión a la cadena UserAgent. En el ejemplo siguiente se muestra un script incrustado en una página HTML simple. El script busca la cadena UserAgent para determinar si .NET Framework está instalado, y muestra un mensaje de estado sobre los resultados de la búsqueda.
<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>
Si la búsqueda de la versión de ".NET CLR " se realiza correctamente, aparece el tipo siguiente de mensaje de estado:
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).
De lo contrario, aparece un mensaje de estado del tipo siguiente:
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).