2010-06-30 87 views
12

我遇到了一個奇怪的問題。我已經安裝了「Visual Studio 2010最終版」。安裝時顯示它已成功安裝.NET 4.0。在安裝其他軟件時。他們抱怨.NET 2.0缺失並要求我安裝它。.NET 4.0是否包含.NET 2.0?

這怎麼可能? .NET 4.0的必須包含.NET 2.0的對象是否是

編輯:

現在,我很困惑。根據這個http://en.wikipedia.org/wiki/File:DotNet.svg CLR是.NET 2.0的一部分。安裝.NET Framework 4.0意味着安裝整個堆棧。其中還包括一個.NET 2.0。請清除這個混淆。

+1

你在什麼操作系統上? Vista默認配備了.NET 2.0,而Windows 7配備了.NET 3.5 SP1。 – 2010-06-30 11:25:10

+0

「必須」是一個很重要的假設。 .Net 2.0不包括.Net 1.0,請記住? – 2010-06-30 11:27:37

回答

13

號.NET 4.0是一個獨立的CLR,它不是基於2.0,不像3.0和3.5

0

如果我不是misstaken,2010年的目標.NET 4.0框架。看起來像你在計算機上缺少.Net 2.0框架。

0

據我知道CLR V2.0.50727以上工作v4.0.30319

0

是的,沒有 - 你可以在.NET 4運行時上運行.NET 2的代碼,但它們是獨立的運行時引擎。

根據安裝程序檢查.NET的方式,它不能檢測到4或者它可能拒絕它是錯誤的:儘管在開發的確切環境中運行代碼是最安全的。

2/3.5是一個並行安裝。我建議你只是安裝它 - 它不應該導致你任何問題。

8

.NET 4.0是運行時的新版本,它獨立於.NET 2.0。

該框架的新版本不包含以前的版本,它們構建爲具有特定功能集的特定版本。 .NET 4.0有一個新的運行時和更新的BCL(基類庫)。 BCL基本上具有與.NET 2.0/3.0/3.5 BCL類似的所有類型(儘管可能會發生重大變化)以及一些新的東西。兩個框架版本(v2.0和v4.0)並行運行。

您沒有安裝.NET 2.0的事實令人擔憂,因爲它是通過Windows Update服務分發的。你在使用什麼操作系統?

+0

Windows XP ____ – pecker 2010-06-30 11:27:40

+0

這是在企業環境中嗎? 我將下載並安裝.NET Framework 3.5,其中包括運行時v2以及v3.5 BCL http://www.microsoft.com/downloads/details.aspx?familyid=AB99342F-5D1A- 413D-8319-81DA479AB0D7&displaylang = en – 2010-06-30 11:33:13

4

正如其他人已經說過的,.net 4.0有一個新的CLR,它與.net 2.0 CLR不同。

默認情況下,應用程序將嘗試在其構建的CLR上運行。

您可以修改與<SupportedRuntime> element的applications.exe.config文件明確地告訴它運行時將應用程序支持系統(順序指定了優先):

<configuration> 
    <startup> 
     <supportedRuntime version="v2.0.50727"/> 
     <supportedRuntime version="v4.0.30319"/> 
    </startup> 
</configuration> 

(顯然,如果有東西在你的應用程序是依賴於.NET 2.0中的東西已經改變,那麼這仍然會失敗)

不幸的是,如果您的應用程序無法安裝,這是因爲安裝程序是明確檢查.NET 2.0中存在,而不是版本> = 2.0,如果是這種情況,你可以嘗試尋找。zip下載而不是安裝程序,但除此之外,除了安裝.net 2.0以外,沒有太多可以做的事情 - 完全支持多個版本的並排安裝。

5

問題是有兩個「東西」當您參考.NET 2.0.NET 4.0

這是事實:

  • 的.NET 4.5框架類庫
  • 包含一切從.NET Framework類庫
  • 包含一切從.NET 3.5 SP1框架類庫
  • 包含了.NET 3.0 SP2 Framework類庫中的所有內容。
  • 包含了.NET 2.0 SP2 Framework類庫
  • 包含一切從.NET 1.1 SP1框架類庫

從微軟的.NET Framework Versions and Dependencies使用有益圖: enter image description here

的問題是,框架運行不同。有版本的.NET框架,但只有版本的.NET CLR(公共語言運行庫):

  • CLR 1.1:附帶的.NET Framework 1.1
  • CLR 2.0 :附帶的.NET Framework 2.0 SP2,3.0 SP2,3.5 SP1
  • CLR 4.0:附帶.NET框架4
  • CLR 4.5:附帶的.NET Framework 4.5

這意味着如果你安裝.NET Framework 4,你仍然可以使用你在.NET 2.使用回不過類,如果你的應用程序需要CLR它不會工作的第2版 - 因爲這CLR 2.0未與.NET Framework一起安裝4.0

+0

出於興趣 - 圖像來自哪裏?它沒有出現在鏈接上。 – Kye 2014-08-18 06:10:14

+1

@Kye它曾經在那裏。微軟自從刪除它。 [但他們無法將它從archive.org移除!](https://web.archive.org/web/20120201195011/http://msdn.microsoft.com/en-us/library/bb822049(v = VS 0.110)的.aspx) – 2014-08-18 17:20:35