.NET Framework
.NET版本 | 1.0 | 1.1 | 2.0 | 3.0 | 3.5 | 4.0 | 4.5 |
完整版本 | 1.0.3705.0 | 1.1.4322.573 | 2.0.50727.42 | 3.0.4506.30 | 3.5.21022.8 | 4.0.30319.1 | 4.5.40805 |
发布时间 | 2002-02-13 | 2003-04-24 | 2005-11-07 | 2006-11-06 | 2007-11-19 | 2010-04-12 | 2012-05-24 |
VS开发版本 | VS2002 | VS2003 | VS2005 | | VS2008 | VS2010 | VS2012 |
Windows默认安装 | | Windows Server 2003 | Windows Server 2003 Windows Server 2008 | Windows Vista Windows Server 2008 | Windows 7 Windows Server 2008 R2 | | Windows 8 Windows Server 2012 |
下载 | |||||||
说明 | Microsoft Internet Explorer 5.01 或更高版本 | Microsoft Internet Explorer 5.01 或更高版本 | Windows Installer 3.1 或更高版本 Internet Explorer 6.0 或更高版本 | | 包括 .NET Framework 2.0 Service Pack 2 和 .NET Framework 3.0 Service Pack 2 累积更新 | Windows Installer 3.1 或更高版本 Internet Explorer 5.01 或更高版本 | .NET Framework 4.5 RC 是一个针对 .NET Framework 4 的高度兼容的就地更新。 |
支持的windows版本 | Windows 98 Windows NT Windows Server 2000 Windows Server 2003 Windows XP | Windows Server 2000 Windows Server 2003 Windows XP | Windows Server 2003 Windows XP | Windows Server 2003 | Windows Server 2003 Windows Server 2008, Windows Vista Windows XP | Windows XP SP3 Windows Server 2003 SP2 Windows Vista SP1 Windows Server 2008 Windows 7 | Windows Vista SP2 Windows 7 Windows 8 Windows Server 2008 Windows Server 2012 |
版本关系
.NET Framework 版本 2.0、3.0 和 3.5 是使用 CLR (CLR 2.0) 的相同版本生成的。 每个版本增量地生成于早期 .NET Framework 版本。 在计算机上不可能并排运行版本 2.0、3.0 和 3.5。 在安装 .NET Framework 3.5 SP1 时,会自动安装 2.0 和 3.0 层。 但是,.NET Framework 4 关闭此分层方法。 以 .NET Framework 4 开始,可使用进程内并行承载来在单独的进程中运行多个公共语言运行时 (CLR) 版本。 Apps 的 2.0 ,3.0 和 3.5 版本可以全部在 3.5 版运行,但是,它们在 4 版或更高版本将不起作用。.NET Framework 4.5 是就地更新,替换您的计算机上的 .NET Framework 4。 在安装此更新后,您的 .NET Framework 4 应用程序在无需重新编译的情况下应继续运行。 但是,.NET Framework 中的某些更改可能需要更改您的应用程序代码。 有关更多信息,在 .NET Framework 4.5 中运行现有应用程序前,请参见 在 .NET Framework 4.5 中的应用程序兼容性。 有关安装当前版本的更多信息,请参见 安装 .NET Framework 4.5。 有关对 .NET Framework 的支持的信息,请参见 Microsoft 支持网站上的 Microsoft .NET Framework Support Lifecycle Policy(Microsoft .NET Framework 支持生命周期策略)。
以上是微软官方解释。
我理解的意思是,3.5包含了2.0和3.0,安装了3.5就自动安装了2.0和3.0。这样也说明了为什么3.5的安装包会很大的原因。win7以后好像就不能直接安装2.0只能通过安装3.5来支持2.0的程序。
4.0是一个过渡版本,安装4.5是会覆盖4.0。并且4.0可在4.5环境中运行。
值得注意的是4.5不支持XP系统了。
获取.NET框架版本
using System;
using Microsoft.Win32;
public class GetDotNetVersion
{
public static void Main()
{
Console.WriteLine( ".NET框架版本:" );
using (RegistryKey ndpKey = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "" ).OpenSubKey( @"SOFTWARE\Microsoft\NET Framework Setup\NDP\" ))
{
foreach ( string versionKeyName in ndpKey.GetSubKeyNames())
{
if (versionKeyName.StartsWith( "v" ))
{
RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
string name = ( string )versionKey.GetValue( "Version" , "" );
string sp = versionKey.GetValue( "SP" , "" ).ToString();
string install = versionKey.GetValue( "Install" , "" ).ToString();
if (install == "" ) //no install info, ust be later
Console.WriteLine(versionKeyName + " " + name);
else
{
if (sp != "" && install == "1" )
{
Console.WriteLine(versionKeyName + " " + name + " SP" + sp);
}
}
if (name != "" )
{
continue ;
}
foreach ( string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
name = ( string )subKey.GetValue( "Version" , "" );
if (name != "" )
sp = subKey.GetValue( "SP" , "" ).ToString();
install = subKey.GetValue( "Install" , "" ).ToString();
if (install == "" ) //no install info, ust be later
Console.WriteLine(versionKeyName + " " + name);
else
{
if (sp != "" && install == "1" )
{
Console.WriteLine( " " + subKeyName + " " + name + " SP" + sp);
}
else if (install == "1" )
{
Console.WriteLine( " " + subKeyName + " " + name);
}
}
}
}
}
}
Console.WriteLine();
Console.WriteLine( "操作系统版本:" + System.Environment.OSVersion.ToString());
Console.WriteLine( "当前.NET框架版本:" + System.Environment.Version.ToString());
Console.ReadKey();
}
}
参考资料
http://zh.wikipedia.org/wiki/.Net_Framework
http://msdn.microsoft.com/en-us/library/bb822049.aspx
http://www.microsoft.com/net