2010-06-26 48 views
3

因此,Windows具有不同版本的.net框架,1.0,1.1,2.0,3.0,3.5以及特定框架的Service Pack。 現在我的Windows有幾個版本的上述框架,讓我感到困惑的是這些可以卸載或安裝嗎?我可以刪除舊版本如果我只是使用3.5或4.0與ASP.NET和Visual Studio?.NET框架(可卸載類型的應用程序?)

還有一個問題,Windows是否依賴.net框架?我的意思是如果我的機器沒有任何.NET框架,我的機器可以工作嗎? :)

+0

這是爲了節省空間嗎?我想你可能會刪除一些以舊版本編寫的程序。 – simendsjo 2010-06-26 16:55:30

+0

@simendsjo,不是爲了節省空間,而是試圖理解.net框架的機制。 – 2010-06-26 16:58:11

回答

1

閱讀的答案,我覺得這是相當混亂的話題,所以會盡量給我自己的答案。

首先,您通過.NET Framework版本調用了什麼?事實上,它可能意味着幾件事情:

  1. 的東西添加/刪除程序卸載程序程序和功能在Windows 7下)控制面板項目或東西在打開Windows功能開啓或關閉列表。

  2. 集安裝的組件。

  3. 的安裝可執行文件時,要安裝.NET Framework,你會從微軟網站下載。

  4. CLR。見內特布羅斯偉大的評論通過發佈simendsjo此頁面上的更多細節的答案。

根據.NET Framework版本的含義,答案會有所不同。

  1. 卸載程序打開的Windows功能上或關閉,你也許可以找到一個或兩個最新版本。目前,我的.NET Framework 3.5.1爲「Windows功能」,而.NET Framework 4.0爲「卸載程序」。我不希望這裏有任何其他版本,因爲爲.NET Framework 2.0編譯的程序可以在使用.NET Framework 3.5的機器上正常運行。作爲證明,編譯一個面向.NET Framework 2.0的Hello World並啓動它:它將啓動。

  2. C:\Windows\Microsoft.NET\Framework,你寧願發現每一個版本,從1.0.3705至4.0。爲什麼?因爲每個新版本的框架都會向舊版本添加功能,而不是重寫所有內容。在此,我強烈建議不要刪除目錄v2.0.50727。可能最近使用Visual Studio 2010編寫並編譯爲使用.NET Framework 4.0運行的程序仍然需要2.0組件。

  3. 在下載.NET Framework安裝程序可執行文件時,您不必考慮舊版本,也不必下載1.0到4.0版本的所有版本。只下載最近的一個,它會沒事的。

注意:必須瞭解的是,不同的版本不是獨立的,而是對舊版本進行更改或添加。這就是關於.NET Framework程序集引用的所有內容。例如,您可能會遇到一種奇怪的情況:使用WCF的基本應用程序(WCF在.NET 3.0中發佈)在僅安裝了.NET Framework 2.0的計算機上運行良好,但在嘗試執行相關任務時崩潰到WCF:程序集按需加載,因此,直到您需要使用.NET Framework 3.0的組件時,纔會使用舊版本的組件。

希望這可以讓事情變得更容易理解。

還有一個問題,Windows是否在.net框架上使用 ?我的意思是,如果我的 機器沒有任何 .net框架,它可以工作嗎? :)

操作系統本身不需要.NET Framework正常工作。但是一些組件需要.NET Framework。正如ChrisF所說,Microsoft XPS查看器/打印機就是一個例子。 微軟Live Writer是另一個。

+0

我不相信這是100%正確的。檢查XP虛擬機以確認現在,但我相信如果您只安裝了4.0,並且您編譯爲3.5或更低,它將不會運行。 – Davy8 2010-06-26 19:12:15

+0

好吧,沒關係。顯然,我搞砸了虛擬機上的.NET安裝。 3.5的卸載程序大約有70%的程序崩潰。去MS吧! :p – Davy8 2010-06-26 19:18:40

+0

:p祝你好運。那麼,在寫我的答案之前,我很快測試了在我的機器上運行以.NET 2.0爲目標的Hello World(Win7,.NET 3.5和4.0),並且程序運行良好。現在,對於在.NET 4.0環境中運行的.NET 3.5應用程序,結果可能會有所不同。 – 2010-06-26 19:29:39

0

剛剛發現this

大多數時候,你可以使用最新版本的.NET Framework來運行用早期版本的.NET Framework創建的應用程序。

所以我覺得最好離開他們。但是,再次...你已經安裝了多少個1.0程序? :)

+3

框架和CLR有不同的版本。即FX 2.0沿着CLR 2.0側;但FX 3,3.5和3.5SP1也與CLR 2.0一致。 FX 4與CLR 4並列。因此刪除舊版本是一個糟糕的想法。 – Nate 2010-06-26 16:59:50

1

如果您安裝了最新的框架(4.0),則不需要安裝previos版本。我不確定您可以在安裝最新的框架後刪除已安裝的previos版本:我不確定添加/刪除程序控制面板小程序會顯示該版本。

第二個問題:在Windows Vista和Windows 7中很少有應用程序依賴於.NET框架,但Windows本身沒有。

0

如果我沒記錯的話3.5和3.5都需要2.0。

4.0可以自己存在。

我認爲1.1也依賴於1.0。

我知道肯定XP不依賴於任何.NET框架的工作,但我不知道關於Vista/7

編輯:

只是做了一些測試上的XP虛擬機。有趣的結果...只安裝了2.0和4.0,我能夠運行編譯爲3.5的控制檯應用程序。但是,如果我使用LINQ(或者我懷疑任何不在2.0中的庫),則在調用該方法時會崩潰。如果沒有調用使用LINQ的代碼,它不會崩潰。

,僅4.0安裝,沒有別的,相同的應用程序提供了運行時以下消息:

要運行這個應用程序,首先 必須安裝以下 版本的.NET框架中的一種:

V2.0.50727

你願意立即下載並安裝.NET框架 的 版本V2.0.50727?

單擊是帶來了頁面下載.NET ...除了它是.NET 4.0下載頁面...

+0

因此,這意味着每個框架1.1,2.0,3.5 ...都依賴於其他版本運行並在它們之間建立連接。早些時候,我一直認爲所有的版本都是獨立存在的,並且存在於他們自己的「家」中。 – 2010-06-26 17:08:05

+0

是的。我不確定1.0/1.1,但如果你沒有框架,而你安裝3.5,它也會安裝2.0和3.0。 3.0和3.5建立在2.0之上,而4.0獨立於其他。但只有4.0意味着你只能運行編譯爲4.0而不是以前的.net版本的應用程序 – Davy8 2010-06-26 17:23:47

+0

@Zai在虛擬機上添加了一些測試結果 – Davy8 2010-06-26 23:56:18

1

雖然不同版本。NET框架是分開的,某些應用程序要求它們都存在於一臺機器上:

如果在Windows XP或Windows Server 2003上安裝Microsoft XPS Viewer(它需要Microsoft .NET Framework 3.0),並且沒有先前版本的.NET Framework(1.1和2.0)已安裝,您將被要求在安裝過程中下載它們。 (45 MB)

Source

一個問題,做窗口依賴於.NET框架?我的意思是如果我的機器沒有任何.NET框架,我的機器可以工作嗎? :)

XP當然不會 - 它早於.NET幾年。

Vista和Windows 7包括.NET 3,所以在某種意義上,它們都依賴於它,但因爲它是一個功能,您可以關閉(感謝MainMa)有沒有。

+0

「但由於框架是操作系統的一部分,所以不能安裝它「:你確定嗎? .NET Framework 3是操作系統的一部分,但作爲一些其他部分,它是*打開或關閉Windows列表的功能,所以我希望它能夠被刪除(否則它不會在此列表中,不是嗎?)。 – 2010-06-26 18:08:55

+0

@MainMa - 好點 - 我無法使用Vista或7機器進行仔細檢查。 – ChrisF 2010-06-26 18:49:48