.NET构建过程和链接

Pro*_*Net 9 .net c# linker compilation build

Building是由编译和链接组成的序列.

在.NET中,源代码被编译到包含公共中间语言和类型信息的程序集中.在运行时,JIT编译器将CIL代码转换为本机代码.

我不明白,在.NET中,链接是如何以及何时发生的.

有人可以解释一下这个过程吗?

提前致谢

Den*_*nis 8

在C++方面没有任何联系.

我的意思是,没有任何中间的"obj"/"lib"文件,可以在以后分发和链接到另一个"obj"文件.对程序集的引用总是具有动态行为(总是动态链接库),而不是C++静态链接.

链接之类的东西是一种创造.netmodule.你可以建立与编译.NET源代码转换.netmodule,而不是组件(看这里,尤其是部分"之间的C#编译器和C++编译器的输出差异"),以后可以一起这些模块连接成一个单一的组件(见Al.exe工具).

但这是不常见的做法 - 大多数程序集包含单个模块,并且这项工作(源 - >模块 - >程序集)已由编译器(例如csc.exe)在幕后完成.此外,我不记得任何产品被重新分配为一组.netmodule(而不是一组程序集).