.NET Core Runtime vs .NET Framework Runtime

本文解释了.NET Framework与.NET Core运行时的区别,详细介绍了.NET Core运行时不仅包含CoreCLR,还包括基础类库(BCL),并说明了为何.NET Core需要频繁更新运行时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4ff6638d8a5ca983c3afc1a8ffc995b5.png

在我从 .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。

a4516fbf313e66f288115d12e2c57f48.png

那么,为什么 .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

331c9a7004316035dc86f129e2610394.png

现在事情已经很清楚了!

  混乱的根源 

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

39968fe030df876521fbd106d63ee1a6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值