什么是.NET中的托管模块?它与Assemblies有何不同?PE文件(例如test.dll)是托管模块还是程序集?汇编/托管模块如何与磁盘上的物理文件相对应?
Rub*_*ink 13
管理模块通常被理解为指代仅包含IL代码而没有直接机器代码的模块.
模块位于普通PE文件中.
程序集是一组1个或多个模块,其中一个指定为"head"(将查找确切的术语[1]).一个模块本身并没有单独使用 - 组件是原子单元.
例如,您可以拥有一个包含2个DLL和EXE的multui-module程序集.多模块组件非常罕见.
Don Box书籍Esssential .NET,Richter CLR通过C#提供了很好的主题报道.有关完整的详细信息,Serge Lidin .NET 2.0 IL Assembler一书和CLI标准更完整.
[1]根据http://www.programmersheaven.com/2/FAQ-DOTNET-DOTNET-Assembly-Explained
程序集可以是单个文件,也可以由多个文件组成.在多文件的情况下,有一个主模块包含清单,而其他程序集作为非清单模块存在
要回答实际问题: -
什么是.NET中的托管模块?它与Assemblies有何不同?
它是一个子集 - 一个DLL可以是没有子模块的主模块 - 因此也是一个程序集
PE文件(例如test.dll)是托管模块还是程序集?
绝对是一个模块.如果它还有一个清单而没有子模块,那么它也是一个程序集
汇编/托管模块如何与磁盘上的物理文件相对应?每个模块都是一个文件.(如果您感兴趣,ILMerge等工具可以合并模块)
| 归档时间: |
|
| 查看次数: |
8030 次 |
| 最近记录: |