.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各版本汇总以及之间的关系_Windows



.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