1、将包含多个类型的源代码文件转换为可以部署的文件。有如下Program.cs的文件,代码如下:

    public sealed class Program
{
public static void Main(string[] args)
{
System.Console.WriteLine("Hello World");
System.Console.ReadKey();
}
}

该应用程序实现了打印"Hello World"的功能,该应用程序中引用到的系统类型都来自于MSCorLib.dll文件,简言之,该应用程序定义了一个类型,该类型使用到了其他公司提供的类型.

下面通过命令行来快速将该文件生成为可执行的文件

第一步:打开命令行,输入以下命令,定位到csc.exe文件所在目录中(Win10下)

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

第二步:执行以下命令

csc.exe /out:C:\Users\zc\Desktop\Program.exe /t:exe /r:MSCorLib.dll C:\Users\zc\Desktop\Program.cs

参数解析:

1、csc.exe   编译器开关

2、/out:C:\Users\zc\Desktop\Program.exe  输出文件的位置和输出文件的类型

3、/t(target):exe 生成的文件是Win32控制台应用程序类型

4、C:\Users\zc\Desktop\Program.cs 输入文件的位置

5、/r(reference):MSCorLib.dll 编译文件时需要引用的程序集

因为Console类型使框架定义的类型,所以必须指定其所在的dll文件,所以添加了/r(reference):MSCorLib.dll开关,告诉编译器在MSCorLib.dll中查找引用的外部类型.

因为MSCorLib.dll是特殊文件,它包含几乎所有的核心类型,所以C#编译器会默认引用该类型,所以.命令可以简化成如下:

csc.exe /out:C:\Users\zc\Desktop\Program.exe /t:exeC:\Users\zc\Desktop\Program.cs

还有,由于/out:C:\Users\zc\Desktop\Program.exe和/t:exe是默认设定,所以命令可以简化成如下:

csc.exe  C:\Users\zc\Desktop\Program.cs

2、响应文件

响应文件是包含一组命令行开关的文本文件.执行cse.exe时,编译器打开响应文件,并使用其中包含的所有的开关,就是通过文件的形式一次性将所有的开关都传递给命令行,在命令行中,在@符号后面指定响应文件的名称.

响应文件代码如下:

/out:Test.exe
/t:exe

class1.cs文件如下:

    public class Class1
{
public static void Main(string[] args)
{
System.Console.WriteLine(Class2.A);
System.Console.ReadKey();
}
}

class2.cs文件如下:

    public class Class2
{
public static string A {get{return "";}}
}

命令行代码如下:

csc.exe @test.rsp C:\Users\zc\Desktop\Class1.cs C:\Users\zc\Desktop\Class2.cs

注:rsp文件必须和csc.exe同文件夹

通过上面的例子可以看出响应文件带给我们的便利性,不用手动输入命令行中参数。

重点:除了显示指定的响应文件,编译器还会自动查找名为csc.rsp的相应文件,如果自定义的响应文件和本地响应文件发生冲突,则本地的为主.

在安装.Net FrameWork时会自动安装csc.rsp文件,该文件强制编译时需要执行的命令行开关,代码如下:

# This file contains command-line options that the C#
# command line compiler (CSC) will process as part
# of every compilation, unless the "/noconfig" option
# is specified. # Reference the common Framework libraries
/r:Accessibility.dll
/r:Microsoft.CSharp.dll
/r:System.Configuration.dll
/r:System.Configuration.Install.dll
/r:System.Core.dll
/r:System.Data.dll
/r:System.Data.DataSetExtensions.dll
/r:System.Data.Linq.dll
/r:System.Data.OracleClient.dll
/r:System.Deployment.dll
/r:System.Design.dll
/r:System.DirectoryServices.dll
/r:System.dll
/r:System.Drawing.Design.dll
/r:System.Drawing.dll
/r:System.EnterpriseServices.dll
/r:System.Management.dll
/r:System.Messaging.dll
/r:System.Runtime.Remoting.dll
/r:System.Runtime.Serialization.dll
/r:System.Runtime.Serialization.Formatters.Soap.dll
/r:System.Security.dll
/r:System.ServiceModel.dll
/r:System.ServiceModel.Web.dll
/r:System.ServiceProcess.dll
/r:System.Transactions.dll
/r:System.Web.dll
/r:System.Web.Extensions.Design.dll
/r:System.Web.Extensions.dll
/r:System.Web.Mobile.dll
/r:System.Web.RegularExpressions.dll
/r:System.Web.Services.dll
/r:System.Windows.Forms.Dll
/r:System.Workflow.Activities.dll
/r:System.Workflow.ComponentModel.dll
/r:System.Workflow.Runtime.dll
/r:System.Xml.dll
/r:System.Xml.Linq.dll

该文件帮助我们引入一些基础的dll程序集,方便我们不用每次使用时都要输入对应的命令行开关.

九、将cs文件快速的转换成可执行文件和响应文件(配置编译开关的文件)的更多相关文章

  1. delphi 文件或目录转换成 TreeView

    //文件或目录转换成 TreeViewprocedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; Incl ...

  2. Altium Designer 从导入DXF文件,并转换成板框

    大多数人都知道,PADS中导入DXF文件,然后转换成板框,是很方便的.AD也同样可以做到. PADS导入DXF见:http://www.cnblogs.com/craftor/archive/2012 ...

  3. Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式

    问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...

  4. android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件

    前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...

  5. python 将excel转换成字典,并且将字典写到txt文件里

    # -*- coding: utf-8 -*- #python2.7 import sys reload(sys) sys.setdefaultencoding('utf-8') from pyexc ...

  6. react中jsx文件是如何转换成js对象的

    通过在线babel转换器,转换出jsx是如何变成js对象的 jsx文件 加入了正常的标签以及嵌套标签以及方法属性 function hello() { click=()=>{ console.l ...

  7. 对一个目录的文件从cp936转换成utf-8

    打开一个文件,确认能够无乱码打开 [xw@localhost work]$ vi NPOSP/src/sjl05.cpp 但是,这里打开的方式是以cp936的编码方式打开的. 编码的选择,记录在~/. ...

  8. PDF文件加密怎么转换成word

    1.将文档拖入Chrome浏览器 2. 3.右上角打印,然后会提示 另存为本地,然后再用word或者福昕套件转换就行

  9. js中将文件的base64转换成file并上传到服务器

    ** * @param base64Codes * 图片的base64编码 */ function sumitImageFile(base64Codes){ var form=document.for ...

随机推荐

  1. Mybatis-Plus 实战完整学习笔记(十)------条件构造器核心用法大全(下)

    31.升序orderByAsc 31.升序orderByAsc List<Employee> employeeList = employeeMapper.selectList(new Qu ...

  2. 微信 公众号平台 与 开放平台 获取用户信息 scope snsapi_login

    微信公众号(公众平台) 和 微信开放平台 是两码事.公众号(公众平台)获取的scope只包括两种:snsapi_base 和snsapi_userinfo,前者是静默获取,用户无感知:后者是需要用户确 ...

  3. Day1-python基础

    python是一门动态解释性的强类型定义语言 python 3.0  ALL IS UNICODE NOW 认识python,了解python的发展史. 1.变量 变量命名规则:变量名只能是字母.数字 ...

  4. 属性动画和Activity、Fragment过渡动画等

    主题是关于动画的,但是不是什么动画的内容都包括.先泛泛的介绍一下,然后详细的介绍一下翻代码找见的一个好玩的动画的使用.以下的内容包括Android 3和Android 3.1等引入的API,在使用中请 ...

  5. spoj high

    matrixtree定理裸体,学了行列式的n^3解法,(应该是能应用于所有行列式): 代码是参考某篇题解的... #include<iostream> #include<cstrin ...

  6. MySQL查询练习(45道)

    题目:设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher). 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1 ...

  7. java基础-day10

    第10天 IO 今日内容介绍 u IO流概述及FileWriter类使用 u FileReader类使用 u 缓冲流介绍和使用 u IO流相关案例 第1章   IO流概述及FileWriter类使用 ...

  8. Greys--JVM异常诊断工具

    https://github.com/oldmanpushcart/greys-anatomy/wiki/greys-pdf 一.简介 我们平时在线上或者开发中会遇到各种性能.功能等问题,在运行过程中 ...

  9. Hdu2841 Visible Trees 2017-06-27 22:13 24人阅读 评论(0) 收藏

    Visible Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) To ...

  10. python操作Hbase

    本地操作 启动thrift服务:./bin/hbase-daemon.sh start thrift hbase模块产生: 下载thrfit源码包:thrift-0.8.0.tar.gz 解压安装 . ...