.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: 按照上述方法做的时候,在 ...
随机推荐
- Inside a low budget consumer hardware espionage implant
The following analysis was performed on a S8 data line locator which replied to the hidden SMS comma ...
- Python 语法1
函数的定义: """ def 函数名(): 函数内容,函数内容, 函数内容,函数内容, """ ////////////////////// ...
- Exception in thread "main" java.lang.NullPointerException at Class.main
出现这种问题,可能的原因之一可能是对象数组未初始化. Class[] class = new Class[N]; for(int i = 0; i < N; i++){ class[i] = n ...
- 显示react配置
1. 由于react默认隐藏webpack配置需要手动显示. npm run eject //Are you sure you want to eject? This action is perman ...
- RNA-seq 数据文件处理
http://www.fungenomics.com/article/30 [专题]基因组学技术专题(二)-- 为什么说FPKM/RPKM是错的 下载数据 wget是linux下一个从网络上自动下载文 ...
- 搭建QT环境
开始使用QT时,环境配置好了,以后才不会有这方面的麻烦,所以第一步,把自己的工作环境搭建好! 下面是我的环境搭建过程,留个记录,也为了后来者能少走一些弯路. 注:本人的系统是WIN7x64位的,其他系 ...
- python 2.7和3.7都支持的情况 bit_length() pycharm 更改解释器
1.头部加: #!/usr/bin/env python # -*- coding:utf-8 -*- 2.bit_length() :当前数值为二进制时,至少要用多少为表示 a = 5 b = ...
- JavaSE-类
一.基础概念:计算机语言的发展是接近人的思维方式演变:汇编语言(面向机器).C语言(面向过程).java(面向对象) 二.成员变量和局部变量: 1.全名定义一个类: Package 包名: Class ...
- JS拖拽div(移动)
<!doctype html><html><head> <meta charset="utf-8"> <title>JS ...
- C语言中的二维数组
1.二维数组的定义和引用 一. 数据类型 数组名[常量表达式1][常量表达式2]; (1)假如有个二维数组array[n][m],则行下标的取值范围0~n-1 (2)列下标的取值范围0~m-1 (3) ...