用csc.exe 编译C#程序

如果已经安装了.NET开发环境(成功安装了.net 3.5 framewor sdk)。就可以使用C#编译器编(csc.exe)编译c#程序。

C#编译器的输出选项

/out   用于指定将被构建的程序集的名称。如果没有使用该选择(默认情况下),程序集名跟最初输入的*.cs的名字相同。

/target:exe  构建一个可执行的控制台程序。这是默认的程序集输出类型(不指定target时,输出的就是这种类型)。

/target:library 构建一个*.dll程序集。

/target:module 构建一个模块。

/target:winexe 构建一个可执行的windows应用程式。此选择创建的应用程式运行时不会启动控制台窗口(target:exe会启动)。

C#编译器一般都支持简写命令,如csc /target:winexe TestApp.cs可简写为csc /t:winexe TestApp.cs 

C#编译器也支持默认模式,如csc TestApp.cs是csc /target:exe TestApp.cs,将编译成TestApp.exe

引用外部程序集
   当应用程序用到另一个.net程序集里定义的类型时,需要通知C#编译器引用外部程序集。使用/reference 命令标志引用。例如TestApp.cs使用了System.Windows.Forms.MessageBox类(System.Windows.Forms.dll程序集里的类)。
编译命令为:csc /r:System.Windows.Forms.dll TestApp.cs
引用多个外部程序集
    需要用分号分隔每个引用的程序集,如:
csc  /r:System.Windows.Forms.dll;System.Drawing.dll *.cs
编译多个源代码文件时只需显式地列出每个原代码文件即可,例如:
csc /r:System.Windows.Forms.dll a.cs b.cs
注意用空格分隔,另外使用通配符(*)通知编译器,将位于项目目录下的所有扩展名是cs的文件全部编译。如:csc /r:System.Windows.Forms.dll *.cs
使用C#响应文件
如果要在命令提示符下构建一个复杂的C#应用程序,那么将需要指定大量的命令选项以通知编译器如何处理源代码。这时使用C#响应文件(response file)就可以减轻输入命令的负担了。
响应文件包含了编译时用到的所有指令。响应文件的扩展名为*.rsp。
例如:一个编译a.cs的响应文件为a.rsp,响应文件内容为以下

#注释用#字符标识
#外部程序集引用
/r:System.Windows.Forms.dll
#输出指令
/target:exe /out:A.exe a.cs

现在只要通知编译器
csc @a.rsp (注意是使用@符号)
也可以指定多个响应文件作为输入(如 csc @First.rsp @Second.rsp),编译器会根据遇到的命令选项做相应的处理,后面的响应文件的命令可以覆盖前一个响应文件的选项(重复的指令按最后一次指定的做处理)。
如 csc /out:a.exe @b.rsp
加入b.rsp用指定/out:b.exe,则最后输出地文件为b.exe
默认的响应文件
C#编译器有一个与之相关的默认响应文件(csc.rsp),该文件与编译器csc.exe同在一个目录。默认响应文件默认会自动被编译器应用,当不需要引用此响应文件是可以为编译器指定命令/noconfig
如csc @a.rsp /noconfig

posted @ 2011-02-27 22:59  黄宝强  阅读(1281)  评论(0编辑  收藏  举报