【C#基础概念】程序集清单
.NET Core 程序集(模块)还包含描述程序集本身的元数据,我们称之为清单。清单记录了当前程序集正常运行所需的所有外部程序集、程序集的版本号、版权信息、模块 、资源(图片 xml等)等。与类型元数据一样,生成程序集清单也是由编译器的工作。
同样地,还是以上面 Calculator
类所在项目为例,我们也来看看程序集清单长什么样子。在 ildasm.exe
工具打开的程序集的目录树中,双击 MAINFEST
即可查看程序集的清单内容:
.assembly extern System.Runtime { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 5:0:0:0 } .assembly extern System.Console { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 5:0:0:0 } .assembly ConsoleApp { ... .custom instance void ... TargetFrameworkAttribute ... .custom instance void ... AssemblyCompanyAttribute ... ... .hash algorithm 0x00008004 .ver 1:0:0:0 } .module ConsoleApp.dll .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY
可以看到,程序集清单首先通过 .assembly extern
指令记录了它所引用的外部程序集。接着是当前程序集本身的信息,记录了程序集本身的各种特征,如版本号、模块名称等。
编程是个人爱好