.NET Core Common Language Runtime (CoreCLR)
此儲存庫包含 .NET Core執行時的完整原始碼。
.NET Core最好被認為是“敏捷.NET”。一般來說它是一樣的
Desktop .NET Framework
作為Windows作業系統的一部分分發,但它是一個跨平臺
(Windows,Linux,macOS)和可以部署的跨體系結構(x86,x64,ARM)子集
作為應用程式的一部分(如果需要),因此可以快速更新以修復錯誤或新增功能。
具體而言,此儲存庫最好被認為是以下NuGet包的原始碼:
- ** Microsoft.NETCore.Runtime.CoreCLR ** - 表示物件分配器,垃圾收集器(GC),類
載入器,型別系統,互操作和.NET類庫的最基本部分(例如
System.Object,System.String …)
它還包含以下密切相關的支援包的原始碼。
-
Microsoft.NETCore.Jit - Just In Time(JIT)編譯器 .NET中間語言(IL)
-
Microsoft.NETCore.ILAsm - 用於的彙編程式 .NET中間語言(IL)
-
Microsoft.NETCore.ILDAsm
-
Microsoft.NETCore.TestHost - 這包含corehost.exe程式,這是一個小包裝器 使用.NET執行時執行在命令列上傳遞給它的IL DLL。
-
Microsoft.TargetingPack.Private.CoreCLR - 一組表示編譯時表面的程式集 由執行時本身實現的類庫的區域。
與CoreFX儲存庫的關係
就其本身而言,Microsoft.NETCore.Runtime.CoreCLR
包實際上還不夠。
其中一個原因是CoreCLR
包試圖最小化它實現的類庫的數量。
僅包括對執行時的內部工作具有強依賴性的型別(例如,
System.Object
,System.String
,System.Threading.Thread
,System.Threading.Tasks.Task
和大多數基礎介面)。
相反,大多數類庫都是作為獨立的NuGet包實現的,它只使用.NET Core
執行時作為依賴項。 許多最熟悉的類(System.Collections
,System.IO
,System.Xml
等),存在dotnet/corefx 儲存庫中定義的包中。
但是你對CoreCLR做不了多少的主要原因是 類庫LOOK中的型別ALL **
就像它們是由CoreFX
框架而不是CoreCLR
定義的。這裡定義的任何庫程式碼
它位於一個名為System.Private.CoreLib.dll
的DLL中,顧名思義就是私有(隱藏)。
相反,對於CoreCLR
中定義的任何特定PUBLIC
型別,我們在CoreFX
中自然地找到了“正確”的包
屬於並使用該包作為public publishing**點。那個’facade’ 包然後轉發引用
到這裡定義的System.Private.CoreLib.dll
中的(私有)實現。
例如,CoreFX
中定義的*System.Runtime
*包宣告類似的型別的PUBLIC
名稱
System.Object
和System.String
。因此,從應用程式的角度來看,這些型別存在於System.Runtime.dll
中。
但是,System.Runtime.dll
(在CoreFX repo
中定義)最終將引用轉發給System.Private.CoreLib.dll
這是在這裡定義的。
因此,為了執行應用程式,您需要同時使用Microsoft.NETCore.Runtime.CoreCLR
NuGet包
(在此儲存庫中定義)以及您實際引用的任何已定義的包
在CoreFX儲存庫中(至少包括System.Runtime
包)。你還需要一些
載入CoreCLR
包以及CoreFX
包並啟動程式碼的“host”可執行檔案(通常是
你使用dotnet.exe
這個)。
相關文章
- System.InvalidProgramException:“Common Language Runtime detected an invalid program.”Exception
- Html language common symbolic entitiesHTMLSymbol
- 關於 .NET Core(.NET Core 指南)
- 【翻譯】CoreRT - A .NET Runtime for AOT
- .NET Core
- .NET平臺系列9 .NET Core 3.0 / .NET Core 3.1 詳解
- Dotnet Core使用特定的SDK&Runtime版本
- 從CLR GC到CoreCLR GCGC
- Dapper in .Net CoreAPP
- .Net Core:限流
- 【asp.net core 系列】14 .net core 中的IOCASP.NET
- ASP.NET Core Web API 索引 (更新Redis in .NET Core)ASP.NETWebAPI索引Redis
- install .net 8 sdk/runtime on win7Win7
- ASP.NET 6.0 Core 遷移 ASP.NET Core 7.0ASP.NET
- ASP.NET Core ----ASP.NET Core中使用Code FirstASP.NET
- .Net Core(.Net6)建立grpcRPC
- .NET Core/.NET之Stream簡介
- .net core使用RabbitMQMQ
- 關於.NET Core
- .net Core 使用AutoMapperAPP
- .net core Configuration物件物件
- .NET CORE命令列命令列
- .Net Core 使用 FluentValidation
- GRPC與.net coreRPC
- .Net Core 使用SessionSession
- 通俗易懂,什麼是.NET Core,.NET Core能做什麼
- .NET Core基礎學習——.NET Core SDK與命令列(CL命令列
- 回顧.NET系列:Framework、Net Core、Net 過往Framework
- .NET Core(.NET6)中gRPC使用RPC
- 【譯】.NET Core 是 .NET 的未來
- 在.NET Core 中使用Quartz.NETquartz
- ASP.NET Core系列(二):建立第一個.Net Core 專案ASP.NET
- 【.NET Core】ASP.NET Core之IdentityServer4(1):快速入門ASP.NETIDEServer
- .net core EF Core 檢視的應用
- .net core cookie 鑑權Cookie
- .net core jwt 鑑權JWT
- .net core 原始碼分析原始碼
- .Net Core中使用RabbitMQMQ