.NET FRAMEWORK版本:4.0.30319; ASP.NET版本:4.6.118.0

來源:互聯網
上載者:User

標籤:visual   運行時   sys   not   組成   rar   分享   image   類型   

https://gqqnbig.me/2015/11/23/net-framework%e7%89%88%e6%9c%ac4-0-30319-asp-net%e7%89%88%e6%9c%ac4-6-118-0/?utm_source=tuicool&utm_medium=referral

.net framework 4.5是一個就地升級,直接升級了.net 4.0;而不是與.net 4.0並存。[1]

.net framework 4.5由通用語言執行平台(CLR)4.0、一些新的類和老的類的補丁組成,所以Environment.Version仍然返回4.0.30319.42000。

安裝Visual Studio 2015時也會一起安裝.net 4.6,同樣4.6也是一個就地升級。[2]

在目標版本為4.0的項目裡,按常識肯定不能訪問4.6引入的類和方法。

IReadOnlyCollection<>泛型介面是.net 4.5引入的,當然不能在4.0裡使用

但是你如果用反射的方法搜尋程式集,會發現IReadOnlyCollection其實載入進來了。

如果你安裝了.net 4.5,即使目標版本為4.0,4.5的新類型也會載入進來

另外,4.5和4.6的升級,都包括對4.0類型的修改,如System.Web.UI.Control新增了BeginRenderTracing()方法。

所以,在目標版本為4.0的項目裡不能訪問4.5的類型,其實只是visual studio做的一個限制。就是說你的程式明明是運行於4.5版本,但你還是欺騙自己說你啟動並執行是4.0。

所以,如果你已經升級到了.net framework 4.5或4.6,建議同時把你的4.0項目升級成最高版本,避免自欺欺人,使用更多的新類型和方法,並且排查問題也知道這是4.5或4.6的問題,而不是4.0,除非你有一台沒升級4.5的機器。

本文所用的測試代碼如下

[code lang="vb"]
Private Sub Default_Load(sender As Object, e As EventArgs) Handles Me.Load
Response.Write(".NET Framework版本是" & Environment.Version.ToString & "。<br/>")

‘Dim a As System.Collections.Generic.IReadOnlyCollection(Of String)

Dim allLoadedTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(Function(x) x.GetTypes())

Dim typeofIReadOnlyCollection = allLoadedTypes.FirstOrDefault(Function(x) x.Name.Contains("IReadOnlyCollection"))
If typeofIReadOnlyCollection IsNot Nothing Then
Response.Write("找到了IReadOnlyCollection,它有" & typeofIReadOnlyCollection.GetMethods().Count & "個方法和" _
& typeofIReadOnlyCollection.GetProperties().Count & "個屬性。")
End If

‘For Each type In allLoadedTypes
‘Response.Write(type.AssemblyQualifiedName & "<br/>")
‘Next
End Sub
[/code]

.NET FRAMEWORK版本:4.0.30319; ASP.NET版本:4.6.118.0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.