.NET Core Runtime vs .NET Framework Runtime
在我從 .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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 更方便地模拟 Http 响应
- 下一篇: .NET6之MiniAPI(九):基于角