Roe*_*ler 83 .net c# assemblies
你能解释一下C#或.NET中的程序集是什么吗?
mar*_*c_s 98
程序集是代码的编译输出,通常是DLL,但EXE也是程序集.它是任何.NET项目的最小部署单元.
该程序集通常包含MSIL(Microsoft中间语言)中的.NET代码,该代码将在第一次在给定计算机上执行时编译为本机代码("JITted" - 由Just-In-Time编译器编译).该编译的代码也将存储在程序集中,并在后续调用中重用.
程序集还可以包含图标,位图,字符串表等资源.此外,程序集还包含程序集清单中的元数据 - 诸如版本号,强名称,文化,引用程序集等信息.
在99%的情况下,一个程序集等于磁盘上的物理文件 - 多文件程序集(一个程序集,分布在多个文件中)的情况似乎是一个相当奇怪的球边缘情况我是在我5年多的.NET开发中从未遇到过.
在多文件程序集中,DLL或EXE中仍然只有一个程序集清单,而多个netmodule文件中的MSIL代码.
http://www.codeguru.com/columns/csharp_learning/article.php/c5845
程序集是在成功编译每个.NET应用程序时由编译器自动生成的文件.它可以是动态链接库或可执行文件.它仅为应用程序生成一次,并且在每次后续编译时,程序集都会更新.
下面是对 .NET 程序集组成的另一种解释(简短引用):
.NET 框架由模块、程序集的概念组成,它们都存储元数据和清单信息。一个程序集可以包含多个模块。Visual C# 只创建一个模块,该模块由 C# 编译器 (csc.exe) 转换为程序集,但程序集可以通过程序集链接器 (al.exe) 命令行工具将许多 .NET 模块链接在一起。例如,每个源代码 .cs 文件都可以编译为模块并链接在一起形成程序集 - 程序集只是模块和资源的集合。然而,这些模块之一;必须包含 CLR 能够理解的程序集的清单元数据(见下文)信息。
....
在 VS.NET 中创建新的 .exe 或 .dll 后,您会看到文件出现在 bin 文件夹中。在记事本中打开它会给出乱码,甚至在不知道文件结构的十六进制编辑器中,您需要像 ildasm.exe 或 CFF explorer 这样的工具来从中理解它的含义。组件结构如下:PE 标头
CLR 标头
CLR 元数据
CLR
IL 代码
本机数据
归档时间: |
|
查看次数: |
58338 次 |
最近记录: |