c#编译 --csc命令的简单应用

简介:
首先要安装好.NET Framwork SDK环境,一般安装了vs.net工具的 都已经可以了,我们这里使用vs2005:在图中 可以看到我们进入vs2005的命令行窗体
   

 

首先,我们用文本文件建一个.cs的文件 其实这个扩展名是可以自己定的,另不用.cs也是可以的,建一个文件命名为:SimpleProgram.cs 输入下面的代码

using  System;
public   class  SimpleProgram
{
    
static void Main()
    
{
        Console.WriteLine(“Hello”);
        Console.ReadLine();
    }

}

保存,注意一下大小写,然后在命令行窗口里输入:csc SimpleProgram.cs,当然我们要首先进入文件所在目录 如果编译通过,在同一个文件夹里会出现一个SimpleProgram.exe,运行 就可以看到一个控制台程序 打印出Hello.

接着我们讲编译多个源文件

编译多个源文件有几种方面:1.把所有的源文件编译成一个exe文件 2.把一些文件编译成dll,一些编译成exe 然后作为一个应用程序一起使用。

先说第一个方法:做两个.cs文件

Program2.cs

using  System
public   class  Program2
{
    
static void Main()
    
{
        Person p
=new Person(“dotLive”);
        Console.WriteLine(“Our person’s name 
is “+p.Name);
    }

}


Person.cs

using  System;
public   class  Person
{
    
private string name;
    
public Person(string s)
    
{
        name
=s;
    }

    
public string Name
    
{
        
get{
            
return name;
        }

        
set
        
{
            name
=value;
        }
    
    }
 
  }


 

保存,命令行窗口中进入文件目录 输入:csc Program2.cs Person.cs   这个时候会在目录里生成一个exe文件,文件的名称跟第一个.cs的文件名相同,如果.cs文件很多的话 还有一个简单的写法:csc *.cs 就可以把当前目录里的所有.cs文件进行编译。

现在说一下第二种方法,还是使用上面两个.cs文件

首先输入 csc /t:library Person.cs命令 这时候会生成一个Person.dll文件,然后第二步输入命令 csc Program2.cs /r:Person.dll 这样就可以生成一个引用Person.dll的exe文件Program2.exe文件。

这里出现了两个参数 /t 和 /r

/t 是指定编译生成dll还是exe,在第一种方法中的命令csc *.cs 其实是一个简写,完整的写法是csc /t:exe *.cs,由于/t:exe是默认的选项可以不写, 还要说一句 这里的exe文件都是控制台应用程序(其他的以后再说)

/r 的作用可以看成是引用了一个dll文件,格式可以写成csc program.cs /r:1.dll;2.dll;3.dll

挂接多个dll,每个dll之间用分号 隔开。

接着我们再讲一个参数 /out 这个是给可执行文件命名的 比如:csc /out:MyApp.exe Program2.cs Person.cs 这样就可以生成一个叫做MyApp.exe的可执行文件。

 

最后再将一个 如果有多个.cs文件中存在Main函数 要怎么办?

首先我们在Person.cs文件的Person类里添加一个Main函数

using  System;
public   class  Person
{
    
private string name;
    
public Person(string s)
    
{
        name
=s;
    }

    
public string Name
    
{
        
get{
            
return name;
        }

        
set
        
{
            name
=value;
        }
    
    }

    
//新增加一个Main函数 
    static void Main()
    
{
        Person p
=new Person(“dotLive2”);
        Console.WriteLine(“Our person’s name 
is “+p.Name);
    }


  }

 

这样一来如果按照原来的方法同时将两个文件编译进同一个exe时,便以一定会出错

这时候我们再引入一个新的参数 /main

在我们自己决定要使用哪个cs文件里的Main函数时 可以输入命令

csc Program2.cs Person.cs /main Program2

就是制定了以Program2里的Main函数为程序入口点了。


路漫漫其修远兮 吾将上下而求索



本文转自 lu xu 博客园博客,原文链接: http://www.cnblogs.com/dotLive/archive/2006/11/29/576793.html  ,如需转载请自行联系原作者

相关文章
|
1月前
|
缓存 C# Windows
C#程序如何编译成Native代码
【10月更文挑战第15天】在C#中,可以通过.NET Native和第三方工具(如Ngen.exe)将程序编译成Native代码,以提升性能和启动速度。.NET Native适用于UWP应用,而Ngen.exe则通过预编译托管程序集为本地机器代码来加速启动。不过,这些方法也可能增加编译时间和部署复杂度。
103 2
|
27天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
31 3
|
26天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
37 1
|
24天前
|
编译器 C#
c# - 运算符<<不能应用于long和long类型的操作数
在C#中,左移运算符的第二个操作数必须是 `int`类型,因此需要将 `long`类型的位移计数显式转换为 `int`类型。这种转换需要注意数据丢失和负值处理的问题。通过本文的详细说明和示例代码,相信可以帮助你在实际开发中正确使用左移运算符。
12 0
|
5月前
|
C#
C#||应用框体设计计算器
C#||应用框体设计计算器
|
2月前
|
设计模式 开发框架 前端开发
MVC 模式在 C# 中的应用
MVC(Model-View-Controller)模式是广泛应用于Web应用程序开发的设计模式,将应用分为模型(存储数据及逻辑)、视图(展示数据给用户)和控制器(处理用户输入并控制模型与视图交互)三部分,有助于管理复杂应用并提高代码可读性和维护性。在C#中,ASP.NET MVC框架常用于构建基于MVC模式的Web应用,通过定义模型、控制器和视图,实现结构清晰且易维护的应用程序。
54 2
|
2月前
|
编译器 C# Android开发
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
Uno Platform 是一个用于构建跨平台应用程序的强大框架,它允许开发者使用 C# 和 XAML 来创建适用于多个平台的应用
279 8
|
1月前
|
消息中间件 网络协议 安全
C# 一分钟浅谈:WebSocket 协议应用
【10月更文挑战第6天】在过去的一年中,我参与了一个基于 WebSocket 的实时通信系统项目,该项目不仅提升了工作效率,还改善了用户体验。本文将分享在 C# 中应用 WebSocket 协议的经验和心得,包括基础概念、C# 实现示例、常见问题及解决方案等内容,希望能为广大开发者提供参考。
110 0
|
1月前
|
Web App开发 网络协议 API
基于C#编写一个远程桌面应用
基于C#编写一个远程桌面应用
44 0
|
1月前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
13 0