手动使用Csc命令编译C#文件
首先的工作是要先装.Net FrameWork 3.5SDK,当然装过visual studio的同学就不需要了,安装这个ide的时候,微软就帮我们默认安装了这个SDK了(下载地址:http://msdn.micro-soft.com/netframework)
尽管你可能未用过notepad进行编程(为了提高开发效率),但理解如何亲手编译自己的代码文件的基本知识还是很重要的。
开始吧,打开记事本(开始--程序--附件--记事本),然后键入以下代码
using System;
class TestApp
{
static void Main()
{
Console.WriteLine("andy测试");
Console.Read();
}
}
然后保存为TestApp.cs文件,再将他编译成一个可运行的文件,装了netframework3.5之后,一般在此目录(C:\WINDOWS\Microsoft.NET\Framework\v3.5)下可以找到csc.exe这个文件,然后你打开运行命令窗口(开始--运行--输入"cmd"),再把当前路径转到上面那个目录下(一般为C:\WINDOWS\Microsoft.NET\Framework\v3.5\),然后你试着输入csc -?,如果一切正常的话,应该可以看到C#命令行编译器的命令行参数列表.
为了把我们刚刚写的那个类编译成控制台应用程序,我们只需在命令行中输入 csc 文件名(例:csc c:\TestApp.cs),然后在命令行当前目录下会生成一个TestApp.exe文件,这个就是最终的运行文件了! 这里的csc 文件名,只是一个缩写而以,全命令应该是这样 csc /target:exe 文件名,只是/traget:exe是C#编译器的默认输出而以!具体的命令可输入csc -? 参考。。
上面看上去好像已经完成了一个过程!但如果我们的程序需要引用外部的程序集,那应该怎么办呢?让我们修改TestApp应用程序,显示一个Windows的窗体消息框吧!请键入以下代码:
using System;
using System.Windows.Forms; //千万记得要加上这一行
class TestApp
{
static void Main()
{
Console.WriteLine("andy测试");
MessageBox.Show("哈罗"); //千万记得要加上这一行
Console.Read();
}
}
由于引用了外部的程序集,所以我们在编译时,也应该在命令中引用外部的程序集(PS:msCorlib.dll是默认引用的)
编译和刚刚一样,只是命令稍微有些不同而以,请输入: csc /r:System.Windows.Forms.dll 文件名(csc /r:System.Windows.Forms.dll c:\TestApp.cs),这样就搞定了!
这时,可能又会有朋友问,那我想引用多个外部的程序集,又怎么办的!其实这个很简单,请看以下示例:csc /r:System.Windows.Forms.dll;System.Drawing.dll 文件名
如果还有的话,就像这样,继续用分号隔开。还有一点。C#命令行编译器是支持通配符的,比如输入csc /r:System.Windows.Forms.dll *.cs 这样就是编译目录下的所有cs文件。
也可以同时编译两个文件,比如文件A使用到文件B的话,那就需要进行同时编译两个文件了!示例csc /r:System.Windows.Forms.dll A.cs B.cs 即可;
通过上面的例子,可以想像在命令提示符下想构建一个复杂的C#应用程序,那么将不得不指定大量的选项以通知编译器如何处理源代码,这了减轻录入的负担,C#编译器彩了响应文件.就是把所有的命令放到一个.rsp文件里面,示例如下(注释用#字符标识,只限同一行):
#外部程序集的引用.
/r:System.Windows.Forms.dll
#用于编译的输出和文件(采用通配符)
/target:exe *.cs
现在假定该文件与将被编译的C#源代码文件保存在相同的目录里,这样就能按照以下步骤构建完整的例示了(注意采用了@符号);
csc @TestApp.rsp
好了!自己通过C#命令编译的过程就这样拉!大家可以通过csc -? 命令可以获取更多的信息...