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版本及兼容性的更多相关文章

  1. .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上(ZT)

    本文转载   https://walterlv.github.io/dotnet/2017/09/22/dotnet-version.html ,感谢  吕毅 (包含链接: https://walte ...

  2. .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上

    转帖:https://blog.csdn.net/WPwalter/article/details/78067293 另参考:https://www.cnblogs.com/worksguo/arch ...

  3. C#版本和.NET版本以及VS版本的对应关系

    C#版本和.NET版本以及VS版本的对应关系 版本 .NET Framework版本 Visual Studio版本 发布日期 特性 C# 1.0 .NET Framework 1.0 Visual ...

  4. 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 ...

  5. 理解Maven中的SNAPSHOT版本和正式版本

    Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制.在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个 ...

  6. 安装MYSQL详细教程 版本:mysql-installer-community-5.7.16.0 免安装版本和安装版本出现错误的解决

    一.版本的选择 之前安装的Mysql,现在才来总结,好像有点晚,后台换系统了,现在从新装上Mysql,感觉好多坑,我是来踩坑,大家看到坑就别跳了,这样可以省点安装时间,这个折腾了两天,安装了好多个版本 ...

  7. git版本回退, github版本回退

    上周提交了更改,过了周末回来说要撤销上个story.于是,需要找到上周提交的版本,rollback回来. git版本管理命令,自从习惯使用管理工具之后就很少接触了,当突然寻找其他指令的时候就成浆糊了, ...

  8. .NET 获取客户端的操作系统版本、浏览器版本和IP地址

    我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系 ...

  9. 解决VS+opencv中Debug版本与Release版本lib切换的问题

    Author: Maddock Date: 2015-03-26 09:34:48 问题来源:http://bbs.csdn.net/topics/390733725 PS: 按照上述方法做的时候,在 ...

随机推荐

  1. 如何在一台计算机上配置多个jdk【转】

    分析问题 为了多快好省的解决当前的问题,我的想法是在windows中同时安装jdk1.6和jdk1.8,在中间进行切换,而不需要多次进行重复的安装和卸载,这样简单方便. 解决思路 第一步:在安装之前, ...

  2. 集合List的排序

    自从出现了泛型和LINQ,对于集合的排序变得更简单了. //倒序 list.OrderByDescending(p=> p.a).ThenByDescending(p => p.b); / ...

  3. 网页中,鼠标点击与javascript的click事件怎么区分处理

    就下面问题发现另一个方式: js代码: <script> //IE if(document.all) { document.getElementById("clickme&quo ...

  4. ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一)

    前言: 第一次接触ABP的项目是在2018年6月份,但是当时没有深入具体的研究,而今天因为工作的需要,需要学习.了解这个框架,在时隔半年之后,今天重新下载了这个项目,虽然在园子里有很多前辈们写的这类的 ...

  5. linux Posix线程同步(条件变量) 实例

    条件变量:与互斥量一起使用,暂时申请不到某资源时进入条件阻塞等待,当资源具备时线程恢复运行 应用场合:生产线程不断的生产资源,并通知产生资源的条件,消费线程在没有资源情况下进入条件等待,一直等到条件信 ...

  6. 记一次idea启动tomcat后控制台乱码的坑

    IDEA的编码配置大致跟<IntelliJ IDEA 控制台中文乱码解决方案>一样 但是启动后依旧乱码!why? 后来想起来,之前因为在win10控制台下跑tomcat乱码,所以,改过一个 ...

  7. thinkphp5.0引入类

    /application/index/controller/Test.php <?php namespace app\index\controller; 当前命名空间名称 use think\C ...

  8. linux学习笔记2 - linux常用命令

    转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...

  9. 在java代码中控制UI界面

    public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle saved ...

  10. python基础(八)

    一.token加盐处理# import itsdangerous## salt='sdf234^#$@G'# t = itsdangerous.TimedJSONWebSignatureSeriali ...