C#编译过程

图转自:(4条消息) C#编译过程图解_u013905744的专栏-CSDN博客

编译器将c#代码编译成DLL/EXE,DLL/EXE包含metadata(清单数据,对代码的描述)和IL(中间语言),IL经过CLR/JIT(仅在编译时进行,编译后缓存)第二次编译才是机器码(计算机可以直接使用)。

程序集具有以下属性:

  • 程序集以 .exe 或 .dll 文件的形式实现 。

  • 对于面向 .NET Framework 的库,可以通过将程序集放入全局程序集缓存 (GAC),在应用程序之间共享程序集。 必须先对程序集进行强命名,然后才能将它们包含到 GAC 中。 有关详细信息,请参阅具有强名称的程序集

  • 只有在需要使用时才会将程序集加载到内存中。 如果未使用程序集,则不加载。 也就是说,使用程序集,可以在大型项目中高效管理资源。

  • 可以使用反射,以编程方式获取程序集的相关信息。 有关详细信息,请参阅反射 (C#) 或反射 (Visual Basic)

  • 你可以加载一个程序集,以使用 .NET Core 中的 MetadataLoadContext 类以及 .NET Core 和 .NET Framework 中的 Assembly.ReflectionOnlyLoad 或 Assembly.ReflectionOnlyLoadFrom 方法来检查该程序集。

     

     

posted @ 2021-04-19 19:33  mc宇少  阅读(439)  评论(0编辑  收藏  举报