不認同 "Net FrameWork 3.0 都是可以向下相容的 ......."
認同 ".NET 有一個非常重要的觀念,叫做版本並存"我的電腦上有 .NET 1.0/1.1/2.0
裝的 .NET CLR 會產生如下目錄
X:\WINDOWS\Microsoft.NET\Framework\v1.0.3705
X:\WINDOWS\Microsoft.NET\Framework\v1.1.4322
X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
所以 .NET CLR 是把各版本各自畫分開來,各版本的 .NET 程式執行自己版本的 .NET CLR.
另外我於X:\WINDOWS\Microsoft.NET\Framework\v1.1.4322> csc test1.cs
X:\WINDOWS\Microsoft.NET\Framework\v2.0.50727> csc test2.cs
用 V1.1 和 V2.0 的 C# Compiler 同一個 C# 程式
用 UltraEdit 比較兩個 test1.exe test2.exe 的不同,發現
test1.exe 內容會有 v1.1.4322 的文字
test1.exe 內容會有 v2.0.50727 的文字
用 ildasm 發現 test1.exe
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 1:0:5000:0
}
用 ildasm 發現 test2.exe
.assembly extern mscorlib
{
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
.ver 2:0:0:0
}
所以"猜測"當 test1.exe 執行時,它應該會去執行 V1.1 相關的 Base Class Library.
所以"猜測"當 test2.exe 執行時,它應該會去執行 V2.0 相關的 Base Class Library.
認同 ".NET Framework 3.0 只是 2.0 的豪華版"
若電腦已裝 .NET V2.0,則 .NET V3.0 則"只安裝"新的 Windows Vista 元件,所以 .NET V3.0 確實是以 .NET V2.0 為基礎沒錯.It combines the power of the .NET Framework version 2.0 with new technologies .......
For customers that already have the .NET Framework 2.0 installed, this .NET Framework 3.0 redistributable package installs only the new Windows Vista components.
參考來源:
http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&displaylang=en
疑問,若是以這樣的邏輯,那麼若哪天 .NET Framework V100,那電腦上不就有近百個 .NET CLR 的版本.
不過 M$ 會耍賤招,就是太舊的 OS 不給裝新版本的 .NET Framework.例如 .NET V3.0 只支援 WinXP 以上,所以像 Win2000 以前的 OS 頂多只裝了 V1.0/V1.1/V2.0 三個版本而已.

不過我不急著裝 .NET V3 啦,我倒比較期待 M$ PowerShell V1.0 正式版. (IT 人的瑞士刀)
(PS:以前叫 M$ Monad(微軟摸奶),現在改名叫 M$ PowerShell(微軟暴薛),已經到 RC2 囉 快出來囉.)
,應該取 .NET V2.1 比較合理.
唉...有點軟.

















































































