.NET版本与CLR版本及兼容性
WIN7原生的.net是2.0和3.5,打开和关闭windows功能里面可以看到。
另外C:\Windows\Microsoft.NET\Framework下面也能看到。
.net framework1.0 1.1底层的CLR1.0 1.1早已被微软抛弃.
WIN7里面附带的.NET 2.0 3.5底层的CLR都是2.0的。
WIN8 10里面附带的.NET4.x framework底层的CLR都是4.0的,他们也附带了.net 2.0 3.5(CLR2.0),需要你在打开和关闭windows功能里面开启。
基于不同版本的CLR开发的程序不可能通用。同一个CLR版本下开发的程序,如果没有采用公用的程序集API,也不一定能够通用。
所以.net4.5.1开发的程序,他会提示你需要安装.net4.5.1,必须要CLR4.0,也就是需要安装.net4.5.1framework。
windows的.net framework非常蛋疼,基本没有什么兼容性,更别提什么跨平台,一个.net程序如果在不同的CLR下开发,在WIN7 8 10上兼容性都难以保证,必须要“运行屎”,“带屎运行”才行,.net运行屎对系统速度有可以感觉到的拖累。
打个不一定太恰当但是很形象的比喻:
CLR1.0 1.1就好比马路,上面只能跑一般的马车.NET1.0 1.1,微软觉得他们不行,于是就有了CLR2.0。
CLR2.0就好比公路,公路上可以跑小汽车.NET2.0、中巴车.NET3.5,微软觉得他们装的人还是太少,于是就有了CLR4.0。
CLR4.0就好比铁路,铁路上可以跑蒸汽机车.NET4.0、内燃机车.NET4.5、电力机车.NET4.6 4.7,微软觉得装的人挺多的。
微软又觉得,各种车光在美国跑不行,还要能在中国跑,这就叫做.NET跨平台。
随着java技术如日中天,微软觉得光卖车还是不行,还要转让技术让更多的厂家来玩,这就叫做.NET开源。
但是要想把小汽车、中巴车开上铁路轨道,那就很难咯。。。因为他们底层的平台CLR不同。
微软又发现,在铁路上跑的蒸汽机车、内燃机车、电力机车发动机虽然不通用,但是他们都可以装一样的空调,这就叫做兼容。
.NET版本与CLR版本及兼容性的更多相关文章
- .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上(ZT)
本文转载 https://walterlv.github.io/dotnet/2017/09/22/dotnet-version.html ,感谢 吕毅 (包含链接: https://walte ...
- .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
转帖:https://blog.csdn.net/WPwalter/article/details/78067293 另参考:https://www.cnblogs.com/worksguo/arch ...
- C#版本和.NET版本以及VS版本的对应关系
C#版本和.NET版本以及VS版本的对应关系 版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- 理解Maven中的SNAPSHOT版本和正式版本
Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...
- 安装MYSQL详细教程 版本:mysql-installer-community-5.7.16.0 免安装版本和安装版本出现错误的解决
一.版本的选择 之前安装的Mysql,现在才来总结,好像有点晚,后台换系统了,现在从新装上Mysql,感觉好多坑,我是来踩坑,大家看到坑就别跳了,这样可以省点安装时间,这个折腾了两天,安装了好多个版本 ...
- git版本回退, github版本回退
上周提交了更改,过了周末回来说要撤销上个story.于是,需要找到上周提交的版本,rollback回来. git版本管理命令,自从习惯使用管理工具之后就很少接触了,当突然寻找其他指令的时候就成浆糊了, ...
- .NET 获取客户端的操作系统版本、浏览器版本和IP地址
我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...
- 解决VS+opencv中Debug版本与Release版本lib切换的问题
Author: Maddock Date: 2015-03-26 09:34:48 问题来源:http://bbs.csdn.net/topics/390733725 PS: 按照上述方法做的时候,在 ...
随机推荐
- vi编辑器之删除操作
参见 1.vi列删除 方法一: ctrl+v进入列编辑模式: 将光标定位子想要删除的起始列: 移动光标至结束列(直接通过移动光标选中,对列不对齐时,可能比较长的行,无法全部选中,尤其是需要一直删除到行 ...
- 学习小片段——thymeleaf入门
1: 概述 thymeleaf是一个跟 Velocity.FreeMarker 类似的模板引擎,和以前学的jsp相近,但性能上无疑是比jsp好. 参考文档官方文档:https://www.thymel ...
- 大数字加法(hduoj)
Problem Description I have a very simple problem for you. Given two integers A and B, your job is to ...
- 中国科学技术大学第五届信息安全大赛(hackergame2018自我总结)2
这一批题都是我不会的,只能把官方write-up放在这里了 1.FLXG 的秘密 ----------------------------------------------------------- ...
- Python_随机序列生成_白噪声
本文介绍如何利用Python自行生成随机序列,实现了 Whichmann / Hill 生成器. 参考: [1]Random Number Generation and Monte Carlo Met ...
- MySQL之命令提示符
一.MySQL创建数据表 1.通过 mysql 命令窗口创建MySQL数据库 2.通过 mysql 命令窗口创建MySQL数据表 3.通过 mysql 命令窗口查看创建的数据表的具体信息 二.Mysq ...
- 复杂透视表的SQL生成方法
一般而言,利用表单查看数据时,会从不同的维度来涉及透视表.比如,从产品和时间维度分析销售数据. 当需要从时间维度去分析时,同时希望能有同比,环比数据,那么将时间维度设计成列将极大方便SQL的编写. 如 ...
- 20175120彭宇辰 《Java程序设计》第七周学习总结
#教材内容总结 第八章 常用实用类 一.String类 String类用来处理字符序列,在java.lang包中,程序可以直接使用String类.需要注意的是Java把String类声明为final类 ...
- s21day21 python笔记
s21day21 python笔记 一.内容回顾及补充 内置函数补充 type():查看数据类型 class Foo: pass obj = Foo() if type(obj) == Foo: pr ...
- PA教材提纲 TAW12-1
Unit1 Introduction to Object-Oriented Programming(面向对象编程介绍) 1.1 Explaining the Object-Oriented Progr ...