1. 程式人生 > >.NET Framework各版本彙總以及之間的關係

.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
說明 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(); } }

參考資料