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


    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里使用

    但是你如果用反射的方法搜索程序集,会发现IReadOnlyCollection其实加载进来了。

    如果你安装了.net 4.5,即使目标版本为4.0,4.5的新类型也会加载进来如果你安装了.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]

  • 相关阅读:
    Python列表推导式,字典推导式,元组推导式
    python装饰器@,内嵌函数,闭包
    7-route命令
    6-mv命令
    5-ln链接命令
    4-linux建立用户用户组以及新用户的赋权
    3-gzip压缩解压命令
    2-date命令
    1-cp命令
    UIViewContentMode的各种效果
  • 原文地址:https://www.cnblogs.com/zkwarrior/p/6195674.html
Copyright © 2020-2023  润新知