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 "111";}} }

命令行代码如下:

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程序集,方便我们不用每次使用时都要输入对应的命令行开关.

转载于:https://www.cnblogs.com/GreenLeaves/p/8480275.html

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

  1. JAVA CP936编码转utf8_对一个目录的文件从cp936转换成utf-8

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

  2. 使用caj文件转换器怎么转换成word文档

    我们在办公的时候会处理很多文件,一般将它转换成word文档的形式,但是有很多caj文件处理不了,一直放在那里,该怎么办呢!这时候就需要用caj文件转换器了,那么使用caj文件转换器怎么转换成word文 ...

  3. CAD文件如何在线转换成JPG格式

    CAD并不是比较普遍的办公应用,它的使用具有一定的门槛,一般都是从事专业设计的人才懂得怎么操作.很多时候,我们的客户都是门外汉,如果我们发图纸都发CAD格式,他们的电脑如果没有安装CAD软件就很可能打 ...

  4. vue获取后台的文件流并且转换成图片

    vue获取后台的文件流并且转换成图片 1.添加request的responseType export function addCode(Equip,data) { return request({ m ...

  5. c# cad二次开发 通过选择txt文件将自动转换成多段线

    c# cad二次开发 通过选择txt文件将自动转换成多段线,txt样式如下 using System; using System.Collections.Generic; using System.T ...

  6. XLSX文件中将url转换成图片写入

    XLSX文件中将url转换成图片写入 新建一个xlsx文件,将图片的url放置表格中 取消所有的文件格式,方便处理url转换图片 修改表格大小,方便存储图片,选中即将要转换的表格中的数据,将行高设置为 ...

  7. 将caj文件整篇转换成Word的教程

    如果遇到下载后的文件资料为caj格式的问题,大家都是怎样进行解决的呢?相信很多小伙伴为了方便使用,都会选择将其转换成Word文档的格式.那么如何将caj文件整篇转换成Word文档呢?下面小编就在通过使 ...

  8. 【Python】递归绘制科赫曲线及科赫雪花及转换成可执行文件打包

    科赫曲线 ----------- 绘制科赫曲线 import turtle def koch(size, n):if n == 0:turtle.fd(size)else:for angle in [ ...

  9. wps linux 程序转pdf文件,将PowerPoint转换成PDF的九款免费软件(附下载)

    概述:PDF拥有许多可用的免费阅读器软件,因此在工作中,很多人会选择将PPT.PPTX文件转化为PDF.在这里,编者搜罗了九款能够将PPT转化为PDF格式的免费软件,它们的特性不尽相同,它们中的一些还 ...

最新文章

  1. 对话文津|相约“信息”的前世今生
  2. iOS 11开发教程(十二)iOS11应用视图始祖——UIView
  3. 陈国良、孙永强教授获中国计算机学会「终身成就奖」,为国内并行算法和编译技术先驱...
  4. 软件工程--第三周学习进度
  5. matplotlib-plot-绘制折线图
  6. MFC自定义消息的实现方法
  7. 动态规划训练25 [Food Delivery ZOJ - 3469 ]好题
  8. 《JavaScript高级程序设计(第四版)》红宝书学习笔记(第五章:基本引用类型,原始值包装类型,单例内置对象)
  9. [Melodymood][流行经典]Take Me to your heart 《吻别》英文版
  10. Java多线程基础学习一:线程的6种状态和相互转化
  11. 配合python的rich库实现高颜值LOL服务器状态查询
  12. 银行账户管理系统GUI
  13. ios dyld: Library not loaded: @rpath/xxx.framework/xxx 之根本原因
  14. 微服务弹性伸缩与负载均衡
  15. VSCode PlatformIO IDE 下开发ESP32遇到的问题
  16. Redis 高可用原理及部署方法
  17. 计算机关闭远程桌面,windows 远程桌面关闭 运行程序退出
  18. element中table多选功能禁止选择某一项
  19. 图解数据分析:从入门到精通系列教程
  20. SDIO wifi Marvell8801/Marvell88w8801 介绍(七) ---- Marvell8801/Marvell88w8801实现搜索功能

热门文章

  1. Spring中SmartLifecycle和Lifecycle的作用和区别
  2. 不是我吹,这个idea插件你真没用过!
  3. 面试官:Java中 serialVersionUID 的作用是什么?举个例子说明
  4. 阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力
  5. 这 10 款插件让你的 GitHub 更好用、更有趣
  6. KDD Cup 2021 时序异常检测总结!
  7. 26 页高清大数据开发代码速查表,提升效率必备!【可下载】
  8. NLP入门之路及学习方法:从任务实践入手!
  9. 详解PyTorch中的ModuleList和Sequential
  10. 可以估计不确定性的神经网络:SDE-Net