.NET构建过程和链接

时间:2012-08-27 08:41:32

标签: c# .net build compilation linker

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

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

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

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

提前致谢

1 个答案:

答案 0 :(得分:7)

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

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

之类的链接是.netmodule的创建。您可以使用编译器将.NET源代码构建到.netmodule而不是汇编(查看here,尤其是部分"Differences Between C# Compiler and C++ Compiler Output"),稍后您可以将这些模块链接到一个程序集中(请参阅{ {3}})。

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