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

  

原文地址:https://www.cnblogs.com/myshowtime/p/11811043.html

时间: 2024-10-29 16:43:45

C# 使用 csc.exe 实现命令行生成的相关文章

《Entity Framework 6 Recipes》中文翻译系列 (40) ------ 第七章 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读)

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-5  从跟踪器中获取实体 问题 你想创建一个扩展方法,从跟踪器中获取实体,用于数据保存前执行一些操作. 解决方案 假设你有如图7-7所示的模型. 图7-7. 包含实体Technician和ServiceCall的模型 在这个模型中,每个技术员(technician)都有一些业务服务请求(service call),业务服务请求包含联系人姓名,问题.使用代码清单7-4,创建一个扩展方法获取

c#调用 WinRAR.exe以命令行形式实现文件、文件夹的解压缩

在实际项目应用中会偶尔使用文件的压缩上传以及服务器端的加压处理,故写此文记录以备不时之需. 1.自己编写的ZipHelper类. 1 public static class ZipHelper 2 { 3 private static string pathExe = AppDomain.CurrentDomain.BaseDirectory + @"Resource\WinRAR.exe"; 4 /// <summary> 5 /// 使用Gzip方法压缩文件 6 ///

用OpenSSL命令行生成证书文件(客户端)

证书文件生成 也许很多人和本人一样深有体会,使用OpenSSL库写一个加密通讯过程,代码很容易就写出来了,可是整个工作却花了了好几天.除将程序编译成功外(没有可以使用的证书文件,编译成功了,它并不能跑起来,并不表示它能正常使用,所以--),还需生成必要的证书和私钥文件使双方能够成功验证对方. 找了n多的资料,很多是说的很模糊,看了n多的英文资料,还是没有办法(不知道是不是外国朋友都比较厉害,不用说明得太清?),无意间找到yawl([email protected])写的文章,难得的汉字(呵呵).

thinkphp命令行生成模型类

thinkphp命令行生成模型类 当你需要创建大量的模型类的时候,不妨考虑下命令行生成,可以快速创建模型类. 在windows下面,使用Win+R输入cmd进入命令控制台,切换到项目根目录(也就是thinkphp文件所在目录),并执行下面的指令可以生成index模块的Blog模型类文件. >php think make:model index/Blog 生成的模型类文件如下:<?php namespace app\index\model; use think\Model; class Blog

【独立开发人员er Cocos2d-x实战 011】Cocos2dx 3.x命令行生成APK具体解释

Cocos2d-x 3.6项目打包生成apk安卓应用文件,搭建安卓环境的步骤有点繁琐.但搭建一次之后,以后就会很快捷! 过程例如以下: 一.下载安卓环境:搭建Android环境须要用到Android SDK.NDK.Ant和JDK. 下载Android SDK 下载Android NDK 下载Android JDK 下载Ant 当中JDK是须要安装的,其它的都直接解压就可以. 二.配置JDK和ANT环境等: 因为网上关于配置资料非常多,此处对配置不进行具体的解说. 三.进入Cocos2dx根文件

【独立开发者er Cocos2d-x实战 011】Cocos2dx 3.x命令行生成APK详解

Cocos2d-x 3.6项目打包生成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后,以后就会非常快捷! 步骤如下: 一.下载安卓环境:搭建Android环境需要用到Android SDK.NDK.Ant和JDK: 下载Android SDK 下载Android NDK 下载Android JDK 下载Ant 其中JDK是需要安装的,其他的都直接解压即可. 二.配置JDK和ANT环境等: 由于网上关于配置资料很多,此处对配置不进行详细的讲解. 三.进入Cocos2dx根目录,并且

jmeterPlugin CMD命令行生成png图片及csv统计文件

Jmeter是个纯java的开源的轻量级性能测试工具,功能强大.因为是轻量级的,与loadrunner相比,报告统计的相对较少.不过有jmeter的插件-JMeterPlugins,可以提供不少其他的报告,包括各种响应时间.吞吐率.线程等的变化曲线等 并且这个插件提供了命令行工具,可以将我们看到的各种曲线,各种报告统计成png图片,或者csv文件.这样我们就完全可以通过命令行来运行jmeter,生成jtl文件,然后在解析jtl文件,产生各种报告,或者展示到网页,或者插入到数据库,等等. 英文地址

stylus安装以及使用命令行生成css文件

Stylus安装 全局安装,安装之前你需要你安装 nodejs .安装node.js的一篇博客,前两步(http://www.cnblogs.com/tanyongli/p/7504603.html) $ cnpm install stylus -g 运行 $ stylus -h  可以获得相关的命令行支持

如何在Linux系统通过命令行生成随机文件

版权声明:本文由胡恒威原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/86 来源:腾云阁 https://www.qcloud.com/community 是否会有这样的场景:在有需要测试数据的时候,你不知如何生成一些已包含测试数据的文件:或者你是临时需要一个小的程序,可以让你生成不同大小的文件(比如大于1Mb少于100Mb),不需要从网络上去搜寻查找如何生成,这里有一些简单的方法帮你偷懒. 1.当你不需要关心随机文件的