VS.NET(C#)-5.1_C#编译器(csc.exe)

 

Visual C#的编译过程大致可以分成二个部分

第一个部分,从程序代码到IL文件,这个过程是通过人工干预来实现的,即通过CSC.exe来实现的;

第二个部分,从IL文件到机器语言,这个工程是机器自动实现的。

 

C#编译器

C#的在Windows平台下的编译器名称是Csc.exe, 如果.NET FrameWork SDK安装在C盘,那么你可以在C:\Windows\Microsoft.NET\Framework\v2.0.50727(或者C:\Windows\Microsoft.NET\Framework64\v2.0.50727)目录中发现它。

VS.NET(C#)-5.1_C#编译器(csc.exe)_第1张图片

用Csc.exe编译HelloWorld.cs非常简单,打开命令提示符,并切换到存放HelloWorld.cs文件的目录中,输入下列行命令:

csc /r:system.dll HelloWorld.cs

上述命令,/r此选项可使得当前编译工程使用指定文件中的公共类型信息。在程序代码中使用"using"关键字导入的所有文件。在程序中,使用自己的类库,在编译时也须引用,如下:

csc/r:system.dll;myExec.exe;myLibrary.dll myProject.cs

(注:其中那个myExec.exe和myLibrary.dll时自己创建的)

 

配置C#命令行编辑器

        我的电脑-属性-高级-环境变量-系统变量列表对话框-双击Path变量-在当前路径值的末尾加入(路径变量里各值用分号区隔):

C:\Windows\Microsoft.NET\Framework64\v2.0.50727

        在命令窗口中输入: csc /?    显示C#编译器支持的选项列表.

 

csc.exe编译C#程序

//TestApp.cs

using System;

class TestApp

{

   publicstatic void Main()

   {

   Console.WriteLine("TestApp for CSC complie!");

   }

}

打开cmd,转到源文件保存的目录

-      输入命令: csc /target:exe TestApp.cs 将TestApp.cs编译成名为TestApp.exe的console应用程序。

 

C#编译器的输出选项

选项    作用

/out    该选项用于指定被构建出的程序集名字。默认条件下,程序集名字或者与最初输入的*.cs文件名字相同(生成*.dll文件的情况下),或者与包含程序的Main()方法的那个类型的名字相同(生成*.exe文件的情况)。

 

/target:exe  该选项构建可执行的控制台应用程序。这是默认的文件输出类型。

 

/target:library 该选项构建一个单一文件*.dll程序集。

 

/target:module 该选项构建一个模块(module)。所谓模块是指组成多文件程序集的元素。

 

/target:winexe 该选项构建一个可执行的windows应用程序,尽管使用/target:exe能创建窗体应用程序,但本选项创建的程序运行时不会有出现在桌面背景上的控制窗口。

 

引用外部程序集

修改TestApp.cs,显示一个Windows窗体消息框:

//TestApp.cs

using System;

using System.Windows.Forms;

 

class TestApp

{

   publicstatic void Main()

   {

   Console.WriteLine("Testing!");

   MessageBox.Show("Hello!");

   }

}

程序集包含了“所用的“命名空间。因此,必须使用/reference标志指定System.Windows.Forms.dll

csc/reference:System.Windows.Forms.dll TestApp.cs

 

编译多个源文件

- 显式的列出各个导入文件来编译C#文件: csc /r:System.Windows.Forms.dll TestApp.csHelloMsg.cs

- 使用通配符(*)通知csc.exe: csc /r:System.Windows.Forms.dll  *.cs

//TestApp.cs

using System;

 

class TestApp

{

   publicstatic void Main()

   {

   Console.WriteLine("Testing!");

   HelloMessage h = new HelloMessage();

   h.Speak();

   }

}

 

//HelloMsg.cs

using System;

using System.Windows.Forms;

 

class HelloMessage

{

   publicvoid Speak()

   {

   MessageBox.Show("Hello!");

   }

}

 

引用多个外部程序集

使用分号列出各个程序集:

csc /r:System.Windows.Forms.dll;System.Drawing.dll *.cs


你可能感兴趣的:(VS.NET(C#),VS.NET入门篇讲义)