《Inside C#》笔记(完) 程序集
程序集内部包含了各种相关的模块、资源文件、配置文件等,将这些在功能上相关的文件整合到单个文件中,以便于部署和维护。使用C#编译器编译程序时,生成的便是程序集。
一、清单数据
a)如果编译的是独立应用程序或是dll,清单数据会被保存在生成的PE文件中,这被称为单文件程序集;但如果是多文件程序集,清单数据会单独保存。
b)清单数据包含的内容有:程序集的名称;版本信息;签名;文件;引用的程序集;类型;自定义Attribute;产品信息。
二、程序集的作用
a)将多个模块打包成程序集可以带来性能的提升,使用多文件程序集时,运行时只需要加载需要的模块,这可以减少程序工作时占用的资源。
b)在.NET中进行部署的最小单位是程序集。程序集是自描述的,早期部署程序便是将程序集复制到指定的文件夹,然后在运行程序的时候,会根据清单数据找到并执行程序集中需要的模块。默认情况下,程序集都是封闭的,除非为模块设置了共享属性。
c)程序集自带版本信息,可以避免之前部署程序时机场出现的“DLL地狱”问题,指的是在为一个程序部署时,覆盖了某个重名的dll,但另一个程序却需要这个旧版本的dll,这样另一个程序就挂了。程序集包含版本信息以及关联引用的程序集信息,即使新的不兼容的dll被添加,程序也能正常工作。
学习资料:Inside C# by Tom Archer
分类:
专题学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具