九、将cs文件快速的转换成可执行文件和响应文件(配置编译开关的文件)
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文件快速的转换成可执行文件和响应文件(配置编译开关的文件)的更多相关文章
- delphi 文件或目录转换成 TreeView
		
//文件或目录转换成 TreeViewprocedure DirToTreeView(Tree: TTreeView; Directory: string; Root: TTreeNode; Incl ...
 - Altium Designer 从导入DXF文件,并转换成板框
		
大多数人都知道,PADS中导入DXF文件,然后转换成板框,是很方便的.AD也同样可以做到. PADS导入DXF见:http://www.cnblogs.com/craftor/archive/2012 ...
 - Linux下dos2unix命令将windows文件编码格式dos转换成Unix格式
		
问题描述: 在Windows系统下面使用文本编辑器notepad后传到Linux系统下的话 Linux下处理和执行一般都存在一些问题,我们可以通过命令查看文件是否是dos格式的, 如果有如图所示的M标 ...
 - android XMl 解析神奇xstream 五: 把复杂对象转换成 xml ,并写入SD卡中的xml文件
		
前言:对xstream不理解的请看: android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件 android XMl 解析神奇xs ...
 - python 将excel转换成字典,并且将字典写到txt文件里
		
# -*- coding: utf-8 -*- #python2.7 import sys reload(sys) sys.setdefaultencoding('utf-8') from pyexc ...
 - react中jsx文件是如何转换成js对象的
		
通过在线babel转换器,转换出jsx是如何变成js对象的 jsx文件 加入了正常的标签以及嵌套标签以及方法属性 function hello() { click=()=>{ console.l ...
 - 对一个目录的文件从cp936转换成utf-8
		
打开一个文件,确认能够无乱码打开 [xw@localhost work]$ vi NPOSP/src/sjl05.cpp 但是,这里打开的方式是以cp936的编码方式打开的. 编码的选择,记录在~/. ...
 - PDF文件加密怎么转换成word
		
1.将文档拖入Chrome浏览器 2. 3.右上角打印,然后会提示 另存为本地,然后再用word或者福昕套件转换就行
 - js中将文件的base64转换成file并上传到服务器
		
** * @param base64Codes * 图片的base64编码 */ function sumitImageFile(base64Codes){ var form=document.for ...
 
随机推荐
- HTTP 错误 500.XX - Internal Server Error 解决办法
			
HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理程序 尚未 ...
 - PuTTY乱码问题解决办法
			
原文链接:http://www.henshiyong.com/archives/403.html 使用PuTTY 时,遇到了乱码问题,查看了别人介绍的信息,解决掉了. 方法其实很简单,现在分享出来. ...
 - Silverlight样式定义
			
方法一.定义在控件内部 <Canvas Background="Red" Height="100" HorizontalAlignment="L ...
 - Zookeeper C++编程实战之主备切换
			
默认zookeeper日志输出到stderr,可以调用zoo_set_log_stream(FILE*)设置输出到文件中还可以调用zoo_set_debug_level(ZooLogLevel)控制日 ...
 - 【python-selenium】python-selenium安装配置
			
selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: * 免费,也不用再为破解QTP而大伤脑筋 * 小巧,对于不同的语 ...
 - js获取元素下标
			
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
 - 服务器重启报错:提示fstab readonly报错!( /etc/fstab 只读无法修改的解决办法)
			
摘自:http://blog.csdn.net/gray13/article/details/7432866 一.问题描述:服务器重启报错:提示fstab readonly报错! 二.问题原因:挂载的 ...
 - Android-Version Compatibility Issues (Gradle 2.14.1 requires Android Gradle plugin 2.1.3 (or newer)) but project is using
			
当AndroidStudio加载工程Project的时候,出现以上错误❌,千万不要点击,否则就是更多其他的错误: 解决方案: 1.认真翻译错误: 2.分析问题发生的原因,然后看到了 ..... ...
 - jwt身份认证
			
项目地址:https://github.com/cuongle/WebApi.Jwt
 - linux常用命令(二)文件上传下载及软件安装
			
1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机:上传下载工具安装命令:yum -y insta ...