【问题标题】:Is mscorlib.dll a CLR?mscorlib.dll 是 CLR 吗?
【发布时间】:2011-04-06 12:44:26
【问题描述】:

如果不是我几乎可以肯定的,那么 mscorlib.dll 的作用是什么,CLR 位于哪里?

【问题讨论】:

    标签: .net clr mscorlib


    【解决方案1】:

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

    请参阅此question,它可能会回答您的问题。

    【讨论】:

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

    我相信这个问题涵盖了您要问的大部分内容:

    mscorlib.dll & System.dll

    【讨论】:

      【解决方案3】:

      mscorlib.dll 包含一些.net 的基本类,例如系统。

      对 mscorlib.dll 所承载的类和命名空间使用反射器。

      您也可以在此处找到有关 CLR 的信息:http://msdn.microsoft.com/en-us/library/8bs2ecf4.aspx

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-28
          • 1970-01-01
          • 2010-09-14
          • 1970-01-01
          • 2012-03-13
          • 1970-01-01
          相关资源
          最近更新 更多