首页 > 代码库 > 《Inside C#》笔记(完) 程序集

《Inside C#》笔记(完) 程序集

程序集内部包含了各种相关的模块、资源文件、配置文件等,将这些在功能上相关的文件整合到单个文件中,以便于部署和维护。使用C#编译器编译程序时,生成的便是程序集。

 

一、清单数据

a)如果编译的是独立应用程序或是dll,清单数据会被保存在生成的PE文件中,这被称为单文件程序集;但如果是多文件程序集,清单数据会单独保存。

b)清单数据包含的内容有:程序集的名称;版本信息;签名;文件;引用的程序集;类型;自定义Attribute;产品信息。

 

二、程序集的作用

a)将多个模块打包成程序集可以带来性能的提升,使用多文件程序集时,运行时只需要加载需要的模块,这可以减少程序工作时占用的资源。

b)在.NET中进行部署的最小单位是程序集。程序集是自描述的,早期部署程序便是将程序集复制到指定的文件夹,然后在运行程序的时候,会根据清单数据找到并执行程序集中需要的模块。默认情况下,程序集都是封闭的,除非为模块设置了共享属性。

c)程序集自带版本信息,可以避免之前部署程序时机场出现的“DLL地狱”问题,指的是在为一个程序部署时,覆盖了某个重名的dll,但另一个程序却需要这个旧版本的dll,这样另一个程序就挂了。程序集包含版本信息以及关联引用的程序集信息,即使新的不兼容的dll被添加,程序也能正常工作。

 

学习资料:Inside C# by Tom Archer

《Inside C#》笔记(完) 程序集