在我从 .NET Framework 到 .NET Core 的过渡期间,有一件事情让我很长时间都感到困惑,那就是 Runtime 运行时, 实际上 Runtime 在 .NET Framework 和 .NET Core 中具有不同的含义。

  .NET Framework 运行时的历史 

当有人问我们,什么是 .NET Framework 运行时,我们都会说 CLR(公共语言运行时),这是绝对正确的。

这就自动给我们留下了一个印象,.NET Core 的运行时就是 CoreCLR。然而,这也是对的。

但是现在让我们了解一下 .NET Core 运行时除了 CoreCLR 之外, 还有什么额外的东西?

  .NET Core 运行时有哪些新功能? 

很多网站上都提到, 您必须下载 .NET Core 运行时才能运行 .NET Core 应用程序,或者安装最新的运行时才能运行 .NET 6 程序,因为 .NET 6 程序不能在之前的 .NET 5 运行时或者 .NET Core 3.1 运行时工作。

为什么有这么多运行时?

真让人头大 (如果您和之前的 .NET Framework 进行比较),因为我们没有在 .NET Framework 中更新过运行时, 包括从 4.5 升级到 4.6,或从 4.6 升级到 4.7 或 4.8。

那么,为什么 .NET Core 会要求我们更新运行时呢?

好吧,实际上 运行时 在不同的上下文中具有不同的含义。

•.NET Framework 中的运行时只是 CLR•.NET Core 中的运行时不仅仅是 CoreCLR,还包括 .NET Core 基础类库 (BCL)。

从 .NET Core 开始,Microsoft 就传达出一个信息, .NET Core 运行时不仅仅是 CLR,它还包括运行 .NET Core 应用程序所必需的一切。

所以,典型的 .NET Core 运行时 包括了以下内容:

CoreCLR — 实际运行时•.NET Core BCL — 基础类库

安装 .NET Core 运行时后,就可以运行.NET Core 控制台应用程序。

但是仅安装了 .NET Core 运行时, 并不能运行 .NET Core Web 应用程序。

如果要运行 .NET Core Web 应用程序,同时需要 ASP.NET Core 运行时 和 .NET Core 运行时

总而言之,运行 .NET Core Web 应用程序需要以下条件:

•.NET Core 运行时 (CoreCLR + BCL)•ASP.NET Core 运行时(.NET Core 框架的类库)

您可以从这个位置查看所有已安装的运行时:C:\Program Files\dotnet\shared

现在事情已经很清楚了!

  混乱的根源 

造成这些混乱的原因是,对于早期的 .NET Framework,我们没有将 BCL(基础类库)视为运行时的一部分,而只是将 CLR 视为运行时。理想情况下,CLR 和 BCL 应该统称为 .NET Framework Runtime

.NET Core Runtime vs .NET Framework Runtime相关推荐

  1. 简析.NET Core 以及与 .NET Framework的关系

    简析.NET Core 以及与 .NET Framework的关系 一 .NET 的 Framework 们 二 .NET Core的到来 1. Runtime 2. Unified BCL 3. W ...

  2. .NET Core 以及与 .NET Framework的关系

    至2002微软公司推出.NET平台已近15年,在互联网快速迭代的浪潮中,许多语言已被淘汰,同时也有更多新的语言涌现,但 .Net 依然坚挺的站在系统开发平台的一线阵营中,并且随着.NET Core 即 ...

  3. 类库(.net Standard)和类库(.net core)以及类库(.net framework)的区别

    .net Standard类库属于一个类库的标准(属于一个标准而不是实现) 打个比方来说: 如果一个类库你希望.net framework的项目引用而且又想要.net core的项目也去引用这时候就可 ...

  4. C# VS2019 Runtime Error! R6034:C runtime library incorrectly

    C# VS2019 Runtime Error! R6034:C runtime library incorrectly 在写一个医疗图像软件的过程中用到了VTK库Activiz.Net,在NuGet ...

  5. java se runtime 下载_Java SE Runtime Environment下载

          Java SE Runtime Environment是一款软件编程语言和计算平台,它的基础技术支持最新的程序,同时还包括实用程序.游戏和业务应用程序.Java SE Runtime En ...

  6. java的runtime类,java中Runtime类的简单应用

    1.简介 JVM中,Runtime类是唯一与JVM的运行状态相关的类,并且默认情况下提供此类的实例化对象. 由于每个JVM进程中只允许运行时类的一个对象,因此默认情况下该类的构造方法是私有化的,这表明 ...

  7. ASP.NET Core改进了.NET Framework中的字符串处理

    显然Microsoft开发人员和管理人员并没有表达清楚,事实上ASP.NET Core 2.0将会得到整个.NET Framework的支持.当前的更改只实现了在ASP.NET上提供.NET Core ...

  8. java runtime 返回值_Java Runtime.exec()注意事项 | 学步园

    转载自:http://blog.csdn.net/flying881114/archive/2011/03/23/6272472.aspx 0. Runtime.exec()用来执行外部程序或命令 1 ...

  9. linux matlab runtime,linux 环境 MATLAB Runtime 安装

    安装 MUTsigcv 软件时需要用到MATLAB环境,安装过程如下: 环境下载:https://ww2.mathworks.cn/products/compiler/matlab-runtime.h ...

最新文章

  1. 最新县及县以上行政区划代码(截止2010年12月31日)
  2. ESP8266的一个小问题
  3. JavaScript——易班优课YOOC课群在线测试自动答题解决方案(二十二)脚本更新3.1
  4. mitdump爬取当当网APP图书目录
  5. 【292天】跃迁之路——程序员高效学习方法论探索系列(实验阶段50-2017.11.24)...
  6. java ajax html复选框,HTMLjavaSkcriptCSSjQueryajax(九)(示例代码)
  7. pyspark读取csv_手把手实现 PySpark 机器学习项目回归算法
  8. 奈飞文化手册_《奈飞文化手册》速阅提炼分享3
  9. 转- Oracle Audit 功能的使用和说明
  10. python IDE 集合
  11. struct msghdr和struct cmsghdr【转载】
  12. JAVA图书管理系统详细代码
  13. RFID无线射频识别技术
  14. rapidminer java_在Java应用程序RapidMiner的整合(Integration of RapidMiner i
  15. matlab中e如何输入,Matlab中表达e的操作方法介绍
  16. 【学习资源】光学、物理类、电子学实验合集
  17. 程序媛学车之——科目二流程
  18. 【Unity3D游戏开发】之游戏目录结构之最佳实践和优化 (十一)
  19. ikbc c104win键盘失灵以及数字键失灵
  20. linux外网服务器跳转内网服务器实现内网访问(iptables)

热门文章

  1. RedHat 5.4下构建postfix全功能电子邮(七)-extmail extman平台-(下集)
  2. Windows 2008 R2安装DHCP服务器问题及解决方法
  3. 百度pcs 如何获取Access Token
  4. 数据校验器架构模式组
  5. jquery1.9 下检测浏览器类型和版本
  6. 滴滴Booster移动APP质量优化框架 学习之旅 三
  7. [Leetcode Week15]Populating Next Right Pointers in Each Node
  8. 题目1023:EXCEL排序---------Case后面的是count,不是C
  9. input file实现批量上传
  10. LINUX - /etc/init.d/nginx: line 51: kill: (29833) - No such process