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. win8快捷键大全分享,非常全

    Windows 8全新的Metro操作体验,对于没有平板只能用快捷键来提高效率了.全面的Windows 8快捷键,请下载微软官方的Windows 8快捷键表格,快捷键全记完整个人都斯巴达了..其实常用 ...

  2. BT1120时序,可以用于自测用

    module bt1120_gen #( , , , , , )( input clk, input rst_p, // input [5:0] h_sync_pixcels, // input [5 ...

  3. revoke回收权限的小问题

    revoke回收权限的时候,原理是从user/db/tables_priv/columns_priv四个表上delete数据: on *.*的权限在user表上 on xx.*的权限在db表上 on ...

  4. WORD文档中插入页码的问题

    原文链接:http://www.360doc.com/content/11/0216/15/849254_93539436.shtml 一.页码从第二页开始1.选择“插入-页码”,打开“页码”对话框. ...

  5. (树)Subtrees -- hdu -- 5524

    http://acm.hdu.edu.cn/showproblem.php?pid=5524 Subtrees Time Limit: 2000/1000 MS (Java/Others)    Me ...

  6. 用jquery制作一个二级导航下拉菜单

    1使用$(function(){...})获取到想要作用的HTML元素. 2通过使用children()方法寻找子元素.       3通过使用show()方法来显示HTML元素.       4通过 ...

  7. 20155326 《Java程序设计》实验五网络编程与安全实验报告

    20155326 <Java程序设计>实验五网络编程与安全实验报告 实验内容 任务一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...

  8. web-day1

    第1章   WEB01-HTML篇 今日任务 网站信息页面案例 网站图片信息页面案例 网站友情链接页面案例 网站首页案例 网站注册页面案例 网站后台页面案例 教学导航 教学目标 了解什么是标记语言 了 ...

  9. utf8.php

    <?php /** * */ class Utf8 { function __construct() { global $CFG; if( preg_match('/./u', '') === ...

  10. hdu 1695 GCD 【莫比乌斯函数】

    题目大意:给你 a , b , c , d , k 五个值 (题目说明了 你可以认为 a=c=1)  x 属于 [1,b] ,y属于[1,d]  让你求有多少对这样的 (x,y)满足gcd(x,y)= ...