.net mscorlib.dll是CLR吗?

.net mscorlib.dll是CLR吗?,.net,clr,mscorlib,.net,Clr,Mscorlib,如果我几乎不确定,那么mscorlib.dll的作用是什么?CLR位于何处?我相信这个问题涵盖了您提出的大部分问题: mscorlib.dll包含.net的一些基本类,如system 使用反射程序查看mscorlib.dll所承载的类和名称空间 您也可以在此处找到有关CLR的信息:CLR不在mscorlib.dll中,而是在MSCorEE.dll中。我想这就是你想要的。这是加载.NET exe程序集时加载的主DLL 这可能回答了您的问题。实际的CLR代码包含在一个文件中,该文件的名称已随不同版本

如果我几乎不确定,那么mscorlib.dll的作用是什么?CLR位于何处?

我相信这个问题涵盖了您提出的大部分问题:


mscorlib.dll包含.net的一些基本类,如system

使用反射程序查看mscorlib.dll所承载的类和名称空间


您也可以在此处找到有关CLR的信息:

CLR
不在mscorlib.dll中,而是在MSCorEE.dll中。我想这就是你想要的。这是加载.NET exe程序集时加载的主DLL


这可能回答了您的问题。

实际的CLR代码包含在一个文件中,该文件的名称已随不同版本而更改 CLR的成员。对于版本1.0、1.1和2.0,CLR代码位于名为MSCorWks.dll的文件中,并且
对于4.0版,CLR代码位于一个名为CLR.dll的文件中。

为什么即使没有安装.NET,mscoree.dll也默认在每台Windows计算机上运行?我想是因为.NET与每台Windows计算机一起运行。甚至XP也附带了某些版本的.NET。请参见:当调用托管模块时,操作系统(windows)认为它只是另一个**普通**(win32)exe;然后它告诉windows加载程序加载文件;加载程序读取idata部分,当它找到
mscoree.dll
的引用时,它知道现在需要在CLR中加载托管模块;然后,最终托管模块的IL被JIT’ted(即时编译)为本机代码;这意味着,MSCorEE.dll将IL编译为本机CPU指令。这不准确,MSCorEE.dll是默认CLR主机,是桌面应用程序CLR的引导程序。它负责使用CorBindToRuntimeEx()加载和初始化它。其他CLR主机是SQL Server或ASP.NET。CLR存储在4.0中的mscorwks.dll、CLR.dll中