是否有工具可以找出PC上安装的.NET框架?

时间:2009-04-12 11:29:14

标签: .net

我知道正式的方式是注册表,但这有点浪费时间。

我必须在几台PC上检查已安装的版本,它们都没有VisualStudio,但它们都是(可能) 版本的.NET框架。

由于热水可能已经存在,我在哪里可以找到它?

5 个答案:

答案 0 :(得分:3)

  1. 尝试smallestdotnet的主页,它正在使用您浏览器的用户代理,以检查您拥有的.net版本。
  2. goto \ Windows \ Microsoft.NET \ Framework \您将看到所有版本。

答案 1 :(得分:3)

这是一款免费的轻量级工具,可以快速完成 - .NET Version detector 2007

如果您想手动执行此操作,this page会显示4-5个好方法。 MS Support page提供了一种方法,就像打开Framework文件夹并检查安装的版本(文件夹名称)一样简单!

但是,如果您想以编程方式执行此操作,HttpBrowserCapabilities类会提供可通过GetClrVersions()调用访问的Request.Browser.GetClrVersions()方法。当然,正如其他人所提到的,你也可以通过Javascript查询浏览器的Navigator.UserAgent属性(我想这只会在IE中显示.NET版本):

javascript:alert(navigator.userAgent)

答案 2 :(得分:1)

编写PowerShell脚本时,我经常会遇到此问题。我发现最好的方法是在以下每个基本目录中运行以下检查

  • %WINDIR%\ Microsoft.Net \框架
  • %WINDIR%\ Microsoft.Net \ Framework64

不要忘记第二个目录,否则您的应用程序可能会在64位计算机上崩溃。

对于每个起始点,我查找目录匹配v\d+\\.\d+\\.\d+并包含文件mscorlib.dll。仅仅查找目录名是不够的,因为名称可能存在而实际上没有安装该版本的框架。例如,如果你有一个vista机器,你也会有v1.0.3705和v1.1.4322,但这些框架都没有实际安装。

答案 3 :(得分:0)

查看SmallestDotNet中的javascript。还有a good article over at the CodeProject

答案 4 :(得分:0)

这是一个可以放在ASP.net网站或winforms中的代码


using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
class Program
{
[DllImport("mscoree.dll")]
private static extern int GetCORSystemDirectory(
[MarshalAs(UnmanagedType.LPWStr)]StringBuilder pbuffer,
int cchBuffer, ref int dwlength);

static void Main(string[] args)
{
GetClrInstallationDirectory();
}

private static void GetClrInstallationDirectory()
{
int MAX_PATH = 260;
StringBuilder sb = new StringBuilder(MAX_PATH);
GetCORSystemDirectory(sb, MAX_PATH, ref MAX_PATH);
Console.WriteLine(sb.ToString());
while(Console.Read() != 'q') ;
}

}
}