微软即时编译
A. C#源代码编译成为本地代码的编译过程
很有兴趣的话,可以去阅读下JeffreyRitchie的《ClrviaC#》,目前出到第三版,英文好的话强烈推荐看英文版的,而且我有该电子书和实体书。
下面讲下我的理解:大致上不会出什么差错的,细节部分你可以参照上面的书籍!
1.首先,c#源码经过c#编译器被编译成托管模块(IL中间代码、元数据(Metadata))
2.然后,使用C#编译器以及程序集链接器(AssemblyLinker----AL.exe)将上述托管模块以及项目的资源文件Combine(整合)成一个程序集(Assembly)
上述程序集就是你所看到的exe文件或者dll文件等等,程序集中包含了manifest描述文件,是该程序集内容以及关系的一个清单,具体的内容你可以参见JR的书跟Java中的类似!
双击该exe运行的时候:
3.最后,运行时,CLR装载对应的程序集,使用内部的三个即时编译器(常用的为JIT),再去根据本机的环境去进行相应的优化(针对CPU优化等等),即时的翻译成本地机器指令去执行。
还有一个本地化代码生成工具,NGen.exe~~
这个最好能去看看那本JR的神作!细节不是我三言两语能讲清的~~
B. C#中IL/MSIL,CTS,CLS,CLR,JIT分别是什么!
IL/MSIL (Microsoft Intermediate Language) 微软中间语言 (IL是MSIL的缩写,译为中间语言)CTS (Common Type System)通用类型系统CLS (Common Language Specification)公共语言规范CLR (Common Language Runtime)公共语言运行时(也有的叫公共语言运行库)JIT (Just in time)即时编译器
C. microsoft visual c++里的编译在哪里
在生成菜单下的最后一个子菜单编译(这个是单独编译的)。
在生成菜单下的的 生产解决方案 或者 生产 ,就是编译加组建。在VC中编译程序的过程:
1.打开VC软件。
2.新建C++程序文件。
3.在新建面板中,选择“文件”选项卡,选择“C++ Source File”选项,同时输入该文件的名称。
4.写好程序后,单击工具栏的“Compile”按钮,进行编译。
5.编译完成,计算机提示我们代码正确,并创建了工程文件。
6.单击工具栏的“Build”按钮,进行连接。
7.计算机提示我们连接成功,并创建了二进制代码。
8.单击工具栏的“BuildExecute”按钮,计算机开始运行代码。
9.程序运行完毕,计算机输出了正确的结果。
D. 微软VS2010如何用来编译C语言
如何使用Visual Studio 2010(VS2010)编译C语言
1.打开VS2010主界面,然后选择,文件→新建→项目,在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)
选择保存位置后确定,弹出个对话框,不管它,下一步.
2.接下来注意了,这个对话框中,应用程序类型要选择控制台应用程序,附加选项一定要选中“空项目”。然后点完成。然后对话框消失.
3.回到VS主界面,这时会在左侧和右侧多了如图工具栏“解决方案管理器”,在源文件上点右键,选择“添加→新建项”。这里注意,如果你已经有写好的C源文件,那么要选择“现有项”
4.又打开个对话框,不管左边的,在右边的模板中选择C++文件(注一),在下面的名称中输入源文件的名字加上.C(注二),保存位置用默认的。然后点击“添加”
5.好了,编辑页面出来了,大家可以写代码了,这里就写所有程序员无论学什么语言都要写的一个程序“hello world”吧^_^
这里可以看到,VS2010可以智能的标示出函数参数和函数体,方便查看和修改。比VC6.0方便多了。
tips:system(“pause”)(需头文件windows.h)的目的是让程序执行到这个位置的时候“暂停”,让操作者能看到结果。
编好了,然后选择 调试,或者直接点绿色小箭头按钮(注三)就可以查看程序运行结果了,最后,别忘了保存.
好了,介绍完了,相信大家也都掌握了在VS2010下编译C的方法,这样装了VS2010的同学也就不用再费事装VC6.0了,VS很好很强大,其他的功能大家自己慢慢摸索吧,呵呵,不说啦。
注释:
注一:现在已经基本没有纯粹的C编译环境了,都是用兼容C的C++编译工具来编译C,所以创建的模板是C++模板。(大家一定还记得VC6.0中大家新建的文件也是C++SourceFile(C++源文件)吧)
注二:加上.C后,编译系统就会知道这个是C源,从而创建的是C的源文件,编译的时候就会调用C编译器。而不加.C,创建的就是C++的源文件。编译的时候会调用C++的编译器。虽然C++兼容C,但是在不同的C++编译环境对C的支持度是不同的,就比如本文中的例子,那句system函数就是C专有的,如果采用C++来编译就会出错。所以,在不确定所用的C++编译器是不是支持某种C语法的时候,还是老老实实的记得加上.C,来告诉编译系统使用C编译器而不是C++。
注三:绿色小箭头的意思是“调试”,快捷键F5,使用的时候会吧程序从头执行到尾,然后自动退出,如果你的程序没有暂停语句的话,就会出现黑色的程序窗口一闪而过的情况。
如果不想让程序在调试完毕后自动退出,最简便的方法就是选择菜单中的“调试→开始执行”或者按快捷键ctrl+F5
E. 怎样使用 MSBuild 自动编译和发布 NET 网站
很多.NET 程序员开发的时候,每次都需要涉及到各个环境的部署问题,但是手工操作的话又容易出错,而且非常麻烦,我们今来讲解怎样实现自动编译和发布 .NET 网站。废话不多讲,先讲讲我的初步实现方案。
MSBuild 自动编译和发布 NET 网站步骤:
准备工具:GIT版本控制(gitlab),Jenkins, msbuild
1、安装git版本控制器,提交代码。(svn好像也可以), 并生成ssh public key上传到gitlab的ssh key中(个人配置/SSH KEY)。
2、安装jenkins开源工具。
3、Jenkins安装git plugin, Msbuild插件(Manager Jenkins/Manage Plugins)
4、配置Jenkins中的git(Manager Jenkins/Configure System)在git栏中输入name和Path: git install path\cmd\git.exe
5、添加对应.NET framework version MSBuild
Name: .NET4.0
Path to MSBuild:
%system%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
6、建立.NET项目文件,并添加MSBuild文件
建立一个解决方案nonsuch.sln,里面包含一个website: nonesuch.web.
在解决方案根目录建立一个xml文件,改名为: build.targets