C#的编译过程
如何用CSC.exe来编译Visual C#的代码文件
1.为了使用方便,你可以手动把上面的目录添加到Path环境变量中去
2.用Csc.exe编译HelloWorld.cs非常简单,打开命令提示符,并切换到存放 HelloWorld.cs文件的目录中,输入下列行命令:
Csc /r:system.dll HelloWorld.cs
命令选项:
# | Option | Remark |
1 | @ | 这个选项是用来指定响应文件。响应文件是一种包含了许多编译选项的文件。这些编译选项将和源代码文件一起由编译器进行处理。一般来说此种响应文件是以文本文件形式出现。他的扩展名.rsp。在响应文件中是用#符号表示开始的注释。 例:以下是一个响应文件resp1.rsp的内容: # 这是一个简单的响应文件,文件名称为resp1.rsp #使用方法: csc @resp1.rsp /target:exe /out:sample.exe sample.cs 此响应文件的作用就是把sample.cs文件编译成sample.exe文件。如果在一次编译中要指定多个响应文件,可以指定多个响应文件选项,如:@file1.rsp @file2.rsp |
2 | /? 与 /help |
|
3 | /addmodule | 本选项是使编译器搜集从用户正在编译的工程到可用文件中所有类型的信息。所有添加了/addmodule的模块在运行时必须与输出文件在同一目录中。这就是说,用户可以在编译时指定任何目录中的模块,但在运行时这个模块必须在应用程序目录中。文件中不能包含汇编名单。例如:如果输出文件用/taarget:module创建,其元数据可以用/addmodule导入。 例子:把二个模块加入myPRoject.cs中 csc /addmodule:module1.dll;module2.dll myProject.cs |
4 | /baseaddress | 本选项允许用户指定载入DLL时的首选地址,这个首选地址可以是十进制、十六进制、八进制。DLL的缺省首选地址在.Net运行时设置。如果目标文件不是DLL文件,这个选项将被忽略。 例子:把myLibrary.cs编译成DLL文件,并且当此DLL在.Net运行环境被载入时的地址是0x1111000:csc /baseaddres:0x1111000 /target:library myLibrary.cs |
5 | /bugreport | 这个选项用来报告编译时的错误信息。在报告中包含以下内容: 1).编译中所有源代码的一个拷贝 2).在编译中所有的编译选项 3).编译信息,包括编译器、运行时间、操作系统的版本信息 4).编译器输出 5).问题的描述 6).如何解决问题的描述 例子:生成一个bugs.txt文件,并把错误报告放在文件里面 csc /bugreport:bugs.txt Hello.cs |
6 | /checked | 此选项指定不在检验或或者未检验关键字范围内以及导致超出数据类型范围的值的整数计算语句是否产生运行例外。具体的说就是,如果不在检验或者未检验关键字范围内的整数计算语句产生的值在数据类型允许的范围之外,并且在编译中使用了/checked+(/checked),该语句就会在运行时产生例外,如果在编译时使用了/checked-,在运行时该语句就不会产生例外。 例子:编译myMath.cs,并且指定一个不在检验或者未检验关键字范围内的整数计算语句(且其产生的值超出数据类型的范围),将在运行时引起例外。 csc /checked+ myMath.cs |
7 | /codepage | 如果用户编译的一个或者多个源代码不使用计算机上的默认代码页,可以使用/codepage选项来指定希望使用的代码页。/codepage适用于编译中所有的源代码文件。 如果源代码文件在计算机上的同一个代码页位置创建,或者源代码文件用UNICODE或者UTF-8来创建,用户就不需要使用/codepage了。 |
8 |