【C#基础概念】程序集清单
2024-09-08 16:19:40
.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
指令记录了它所引用的外部程序集。接着是当前程序集本身的信息,记录了程序集本身的各种特征,如版本号、模块名称等。
最新文章
- Python读取文件内容并将内容插入到SSDB中
- struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
- 深入理解redis持久化
- MCMC: The Metropolis Sampler
- CentOS上安装软件错误提示:configure: error: no acceptable C compiler found in $PATH
- Javascript原型模式总结梳理
- jQuery中.bind() .live() .delegate() .on()的区别
- HTML 运算符、类型转换
- apache性能优化
- HTTP 错误 404.3 - Forbidden
- Linux Kernel 'MSR' Driver Local Privilege Escalation
- TalkingData游戏版本在Cocos2d-x 3.0使用
- UVa 10473 - Simple Base Conversion
- 【1414软工助教】团队作业10——复审与事后分析(Beta版本) 得分榜
- wordpess关闭评论的方法,wordpress开发
- 如何利用JavaScript遍历JSON数组
- Qzone React Native改造
- mpvue小程序开发之 iconfont图标引入
- linux 硬盘分区与格式化挂载 (二)
- python 安装包制作