.NET Framework各版本汇总以及之间的关系
.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 |
||
下载 | .NET Framework 1.0 (SP3) | .NET Framework 1.1 (SP1) | .NET Framework 2.0 (SP2) | .NET Framework 3.0 (SP2) | .NET Framework 3.5 (SP1) | .NET Framework 4.0 | .NET Framework 4.5 |
说明 | 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(); } } |