c#代码编译过程

来源:互联网 发布:书签淘宝 编辑:程序博客网 时间:2024/05/17 22:49

摘自以下两篇文章:

http://blog.sina.com.cn/s/blog_625eba570100g1d2.html

http://www.cnblogs.com/li0803/archive/2011/02/03/1948924.html

C#语言运行时要经过两次编译,第一次编译是将源代码编译为MSIL(微软中间语言),即可以发布软件了。当软件运行时MSIL代码载入内存时会进行第二次编译,中间语言会编译为机器语言以供计算机调用,第二次编译只在载入内存时发生,编译的结果被储存起来以备重复利用。编译时是按需编译,即只编译所用到的代码,而不是全部程序,称为JIT(即时编译)

编译过LINUX的朋友应该都熟悉Make文件吧,在这里面可以清楚的看到使用编译器把C源代码编译成二进制源代码的流程,中间干了什么都可以看得清清楚楚。但使用VS的朋友一般都是程序写好之后直接F5就运行了,后面做了什么我们根本不知道。对于COSMOS的源代码,VS只是帮我们编译成了IL的代码,这种代码无法在没有CLR环境中运行,所以VS还需要把IL代码编译为针对CPU的本地代码。这中间的流程都由MSBuild这个东西控制。对于MSBuild的介绍可以直接查看MSDN文档。总的来说这个东西的地位就相当于Make文件的地位吧,指导VS如何生成可以引导的二进制文件。

 

0 0