CLR的执行模型(2):将托管模块合并成程序集

Posted renzhoushan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLR的执行模型(2):将托管模块合并成程序集相关的知识,希望对你有一定的参考价值。

程序集(assembly)是一个抽象概念。首先,程序集是一个或多个模块/资源文件的逻辑性分组。其次,程序集是宠用、安全性以及版本控制的最小单元。取决于所选择的编译器或工具,既可生成单文件程序集,也可以生成多文件程序集。在CLR中,程序集相当于unity的组件Component。

技术图片

编译器默认将生成的托管模块转换成程序集,既C#编译器是含有清单的托管模块。清单指出程序集只由一个文件构成。所以,对于只有一个托管模块而且无资源的文件项目,程序集就是托管模块,生成过程中无额外步骤。但是,如果需要将一组文件合并到程序集中,就必须掌握更多工具以及其命令行。

在程序集的模块中,还包含于引用的程序集有关的信息。这些信息使程序集能够自描述。也就是书,CLR能判断为了执行程序集中的代码,程序的直接依赖对象是什么,不需要在注册表或ADDS中保存额外的信息。由于无额外信息,所以和非托管组件相比,程序集更容易部署。

这一小节的内容没有很多。其实因为刚开始接触CLR的缘故,很多东西还在嚼,所以文章中摘录了大量原书的描述。就当是一个学习记录吧。

 

本文中涉及到的一些概念:

ADDC:活动目录(Active Directory)是面向Windows Standard Server、Windows Enterprise Server以及 Windows Datacenter Server的目录服务。(Active Directory不能运行在Windows Web Server上,但是可以通过它对运行Windows Web Server的计算机进行管理。)Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。(摘自百度百科)

 

以上是关于CLR的执行模型(2):将托管模块合并成程序集的主要内容,如果未能解决你的问题,请参考以下文章

底层运行机制CLR-C#

clr的执行模型(中)

CLR的执行模型:加载

C#基础之CLR的执行模型

CLR的执行模型(4):执行程序集的代码

将WinForm程序(含多个非托管Dll)合并成一个exe的方法