检测 .NET Framework 3.5
通过读取注册表项或通过查询 Internet Explorer 中的用户代理字符串,可以检测是否已安装了 .NET Framework 3.5。
读取注册表项
安装成功完成后,.NET Framework 3.5 安装程序会写入注册表项。通过检查下表中列出的注册表项,可以检测是否安装了 .NET Framework 3.5。
| 注册表项名称 | 值 |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 | 名称:Install 类型:DWORD 数据:1 |
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform | 名称:Version 类型:REG_SZ 数据:.NET CLR 3.5.build number |
读取浏览器中的用户代理字符串
当计算机上安装了 .NET Framework 3.5 后,.NET Framework 3.5 版本号将显示为浏览器标头中报告的用户代理字符串的一部分。以下示例演示了一个示例页,该页使用 JavaScript 检测并报告是否安装了 .NET Framework 3.5。
<html> <head> <title>Test for .NET Framework 3.5</title> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" /> <script type="text/JavaScript"> <!-- var NETFX3RuntimeVersion = "3.5.21022"; function body_onload() { var result = document.getElementById("result"); if (HasRuntimeVersion(NETFX3RuntimeVersion)) { result.innerHTML = "This machine has the correct version of the .NET Framework 3.5 runtime: " + NETFX3RuntimeVersion + "." + "\n\nThis machine's userAgent string is: " + navigator.userAgent + "."; } else { result.innerHTML = "The .NET Framework version 3.5 is not installed on this computer.<br/>" + "Click <a href='http://msdn.microsoft.com/windowsvista/default.aspx'>" + " here</a> to get the .NET Framework 3.5 now.";} } // // Retrieve the version from the user agent string and compare with specified version. // function HasRuntimeVersion(versionToCheck) { var userAgentString = navigator.userAgent.match(/.NET CLR 3.5.[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 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 onload="body_onload();"> <div id="result" ></div> </body> </html>
如果搜索字符串“.NET Framework 3.5”版本成功,将显示以下消息:
This machine has the correct version of the .NET Framework 3.5: 3.5.28015.00.
This machine's userAgent string is: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.5.28015.00).
(根据测试 .NET Framework 时使用的不同浏览器和浏览器版本,用户代理字符串的详细信息会略有不同。)
如果没有安装“.NET Framework 3.5”,将显示以下消息:
The .NET Framework version 3.5 is not installed on this computer.
Click here to get the .NET Framework 3.5 now.

浙公网安备 33010602011771号