C# 使用 csc.exe 实现命令行生成
概述
CSC是什么呢?CSC就是 C-Sharp Compiler (中文就是C#编译器),作用是把我们的 cs 源文件变异成dll 或者是exe , 一般安装完VS 后,就会有这个文件;
这里有个图解释一下

因为我装的 VS 2019 ,我本机的 csc.exe 的目录在 C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Roslyn ,大家如果装的有其他的版本的话,可以搜索一下就找的到了。
使用
安装完 VS后,可以在开始菜单中找到 VS 的命令行工具

第二个和第三个 分别是 cmd 模式和 PowerShell 模式 随便打开一个即可,然后在命令行内 输入 csc ,如果是出来下面的内容,说明这一步已经没有问题了

编译源文件
我在 D盘下 新建一个记事本文件,输入一下内容,并改名为 Program.cs
using System; namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.ToString()); Console.ReadKey(); }
}
}
CD 命令 切换到 D 盘 ,并输入 csc Program.cs ,执行后发现生成了 Program.exe ,并且可以成功运行,现在 已经用 csc.exe 成功编译了源文件

如果源文件的语法有问题,会成功编译通过吗?
我把Program.cs 改成下面的
using System; namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(DateTime.Now.ToString()); Console.ReadKey();
重新编译, 执行命令 csc Program.cs

发现编译失败了,说明 csc.exe 会对我们的语法做检查。
常用命令
//编译生成 File.exe 的 File.cs :
csc File.cs //编译生成 File.dll 的 File.cs :
csc -target:library File.cs //编译 File.cs 并创建 My.exe :
csc -out:My.exe File.cs //编译当前目录中的所有 C# 文件,对其进行优化并定义 DEBUG 符号。 输出为File2.exe :
csc -define:DEBUG -optimize -out:File2.exe *.cs //编译当前目录中的所有 C# 文件,生成 File2.dll 的调试版本。 不显示徽标和警告:
csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs //将当前目录中的所有 C# 文件编译为 Something.xyz (DLL):
csc -target:library -out:Something.xyz *.cs
C# 使用 csc.exe 实现命令行生成的更多相关文章
- 《Entity Framework 6 Recipes》中文翻译系列 (40) ------ 第七章 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读)
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-5 从跟踪器中获取实体 问题 你想创建一个扩展方法,从跟踪器中获取实体,用于数 ...
- cocos命令行生成项目
cocos命令行生成项目: cocos new GoodDay(项目名称) -p com.boleban.www(包名字) -l cpp(项目类型) -d D:\DevProject\cocos2dx ...
- Microsoft Windows Installer 工具 Msiexec.exe 的命令行选项
摘自:http://support.microsoft.com/kb/314881/zh-cn 概要 本文列出了 Windows Installer 工具 Msiexec.exe 的命令行选项.Msi ...
- [转]Explorer.exe的命令行参数
本文来自:Explorer.exe的命令行参数 摘要 本文讲述explorer.exe(资源管理器)的命令行. 语法 EXPLORER.EXE [/n][/e][,/root,<object&g ...
- Beyond Compare 命令行生成目录下所有文件比对的Html网页report
MAC环境下,使用Beyond Compare命令行生成两个文件夹差异的html,按目录递归生成. #1. 创建compare #2. 创建compare/old #3. compare/new #4 ...
- 用OpenSSL命令行生成证书文件
用OpenSSL命令行生成证书文件 1.首先要生成服务器端的私钥(key文件): openssl genrsa -des3 -out server.key 1024 运行时会提示输入密码,此密码用于加 ...
- Jmeter之命令行生成HTML报告
其实每次使用jemter.bat文件启动JMeter时,命令行窗口都会提示我们不要使用GUI窗口进行测试,除非是进行调试脚本 使用命令行生成结果也很测试报告也很简单 jmeter -n -t [jmx ...
- thinkphp命令行生成模型类
thinkphp命令行生成模型类 当你需要创建大量的模型类的时候,不妨考虑下命令行生成,可以快速创建模型类. 在windows下面,使用Win+R输入cmd进入命令控制台,切换到项目根目录(也就是th ...
- php命令行生成与读取配置文件
接着之前的文章:php根据命令行参数生成配置文件 ghostinit.php <?php class ghostinit{ static $v = 'ghost version is 1.1'; ...
随机推荐
- 企业日常巡检shell脚本
Linux内部查看系统信息 $INTERNET192忽略 [root@ mysql-master ~]# ip a|grep eth0|grep inet|cut -d' ' -f6|cut -d'/ ...
- HIT2019视听觉信号处理视觉实验一
写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验一,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验一. 由于时间紧张,代码没有进行任何优化, ...
- 前后台分离的 NET Core 通用权限管理系统
前言 从事软件开发这个行业现在已经有十几年了,项目无论大小权限认证.授权模块总是或多或少有功能需求的,这一块费时费力但是又存在于后台,使用最多的可能是运维人员所以处于出力不讨好的尴尬地位,每次有新的项 ...
- 在一个数组中,除了两个数外,其余数都是两两成对出现,找出这两个数,要求时间复杂度O(n),空间复杂度O(1)
题目:在一个数组中,除了两个数外,其余数都是两两成对出现,找出这两个数,要求时间复杂度O(n),空间复杂度O(1) 分析:这道题考察位操作:异或(^),按位与(&),移位操作(>> ...
- react-native 跳转到ios/android 权限设置界面
目录 ios android 1.在android/app/src/main/java/com/<projectname>文件夹下创建opensettings文件夹 2.在opensett ...
- 3- 设置断点修改Response
以下是借鉴别人的知识分享.我在这里转载,如有冒犯,还请告知. 只要你会设置断点修改请求内容的话,这个设置断点修改响应内容的方法也是一样的,只需要修改一下命令即可. 修改响应内容也有两种方法: 第一种: ...
- linux—chown
1 .修改 /usr/local下bin目录的所属者 2.修改 /usr/local下bin目录的所属组 3.修改 /usr/local下games目录的所属者和所属组 4.修改 /usr/local ...
- Javascript 垃圾回收方法
Javascript 垃圾回收方法 标记清除(mark and sweep) 这是 JavaScript 最常见的垃圾回收方式,当变量进入执行环境的时候,比如函数中声明一个变量,垃圾回收器将其标记为& ...
- Linux查看文本的第20~30行
一.模拟环境 [root@WT ~]# seq >/data/test.txt [root@WT ~]# xargs -n </data/test.txt 二.实现命令 方法一(head+ ...
- NodeJS4-3静态资源服务器实战_优化成近似同步写法
实例3 上面有点回调,优化成近似同步的写法 route.js const fs =require('fs') const promisify = require('util').promisify; ...