开发人员将源文件编译之后生成的中间件,我们称之为“程序集”。因为程序集文件名一般以.EXE(或者DLL)结尾,因此很容易将它与传统开发过程中的EXE文件(或者DLL文件)搞混淆。虽然两者的后缀名相同,但本质上却千差万别。
程序集文件与普通的EXE文件(或者DLL文件)在以下3个方面有着本质上的差别:
1.首先是两者面向的对象不同,程序集是面向CLR的,是.NET平台范畴的东西,而EXE文件则可以说是主要面向Windows操作系统的。
2.组成结构不同,程序中包含IL(中间语言)及程序集元数据(类型信息、版本信息、引用其它程序集信息、安全加密信息)及一些资源数据。而EXE文件则主要包含二进制指令,是一个指令集合。
3.功能也不同,程序集不仅可以运行在CLR中,还可以在开发过程中发挥作用。但是普通的EXE(或者DLL)不行。
总之程序集是非完全编译的产物。它兼备了源代码和本地代码的特性,是一种介于源代码和本地代码之间的独立存在的一种数据结构,同时具有可读性和可执行性。而普通的EXE文件只可以运行。