【初识C#】怎样使用C#命令行编译器csc.exe编译Hello World 程序

C#手动编译一个.cs源代码文件并生成.exe可执行文件 要手动编译一个C#源代码文件并生成.exe可执行文件,一般使用微软的命令行编译器csc.exe。下面的步骤会指导你如何完成这个过程,保证你会得到一个可以执行的.exe文件。假设你的C#源代码文件名为。 阅读详情

怎样使用C#命令行编译器csc.exe编译Hello World 程序

csc.exe是microsoft .NET framework下的c#编译器:

1.配置C#命令行编译器:

我的电脑 —〉高级 —〉环境变量 —〉Path —〉添加";C:\Windows\Microsoft.NET\Framework\v2.0.50727"(Path的最后一个路径虽版本的改变而改变)。csc.exe(C#命令行编译器)就放在该目录下。通过csc /?来查看所有参数。

2.配置其它.NET命令行工具

我的电脑 —〉高级 —〉环境变量 —〉Path —〉添加";D:\ProgramFiles\Microsoft Visual Studio 8\SDK\v2.0\Bin"(Path随安装目录的改变而改变,如果安装在C:\,则为";C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin"

3.命令行基础知识
如果您使用命令行的次数很有限,那么请让我说明一些基本的详细信息,以便进行必要的准备。

首先,可以使用反斜杠或单个短划线指定 csc.exe 的选项。其次,在 / 或 - 以及随后的标志之间具有额外的空格是非法的。因此,“-help”是完全正确,而“- help”就行不通了。为了加以说明,让我们使用 help 标志检查完整的命令行选项集:

csc –help
csc /help

如果一切正常,则您应当看到所有可能的标志.

很多选项都提供了简写表示法,以便为您节省一些键入时间。假设 help 标志的简写表示法是 ?,则您可以如下所示列出 csc.exe 的选项:

csc –?
csc /?

很多选项都需要附加的修饰,例如,目录路径和文件名。这种性质的标志使用冒号将标志与它的修饰分隔开来。例如,/reference 选项要求将 .NET 程序集的名称包括在程序集清单中:

csc /reference:MyLibrary.dll ...

其他标志在性质上是二元 的,因为它们或者被启用 (+),或者被禁用 (-)。二元标志总是默认为它们的禁用状态,因此您通常只需要使用加号标记。例如,要将所有编译警告都视为错误,可以启用 warnaserror 标志:

csc /warnaserror+ ...

标志的顺序无关紧要,但是在指定输入文件集合之前,必须列出所有标志的集合。另外值得说明的是,在修饰和它的关联数据之间具有额外的空格是非法的。例如,请使用 /reference:MyLibrary.dll,而不要使用 /reference:MyLibrary.dll。

4.C#命令行编译器的常用选项

(1)/addmodule

指定要在所创建程序集中包含的模块,这是一种创建多文件程序集的简便方法。

(2)/debug

允许生成调试信息。

(3)/define

预处理器指令能直接传给编译器:/define:DEBUG

(4)/delaysign

使用强名的延迟签名构建程序集。

(5)/doc

指定要生成一个包含XML文档的输出文件。

(6)/keyfile

指定.snk文件的路径,该文件中包含用于强签名的密钥对。

(7)/lib

指定/reference选项中包含的程序集所在的位置。

(8)/out

编译所得输出文件的文件名,默认为输入文件名加.exe后缀。

(9)/reference(简写/r)

引用一个外部程序集。

(10)/resource

将资源文件嵌入到创建的程序集中。

(11)/target(简写/t)

指定所创建输出文件的类型:

/t:exe 构建*.exe控制台应用,这是默认输出

/t:library 构建*.dll程序集

/t:module 构建不包含清单的模块(可移植的可执行文件,PE)

/t:winexe 构建*.exe Windows窗体程序集

使用原始编译器的真正意义是,可以同时处理多个文件和程序。

例:有两个C#源文件,client.cs和clientlib.cs

ⅰ:编译多个文件:

C#编译器接受多个输入源文件,并将输出合并为一个程序集

csc /out:client.exe client.cs clientlib.cs

ⅱ:创建和使用代码库

Clientlib中的代码可以放入一个单独的库中,这个库可以由所有客户访问

csc /t:library clientlib.cs

输出是一个名为clientlib.dll的程序集,编译客户代码,并引用这个外部程序集:

csc /r:clientlib.dll client.cs

输出是一个名为client.exe的程序集,如果使用Ildasm查看,可以看到单中包含有对lientlib程序集的引用。

ⅲ:创建多文件程序集

与作为一个单独的程序集相比,更好的方式是将clientlib作为一个单独的文件打包到client.exe程序集中。由于程序集中只有一个包含清单的文件,所以首先要将clientlib.cs编译为可移植的可执行模块。为此,要将输出目标设置为module:

csc /t:module clientlib.cs

输出文件是clientlib.netmodule。使用编译器的addmodule选项将它添加到client.exe程序集:

csc /addmodule:clientlib.netmodule client.cs

最后得到的程序集包含两个文件:client.exe和clientlib.netmodule.

5.通过csc命令行编译器来编译C#文件的一个最简单例子

1)在H盘下新建一个名为Program.cs文件

using System;
namespace Hello_World
{
class HelloCmdLine
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World,{0}!", args[0]);
}
}
}


2)运行 ->cmd


运行以上命令编译成功生成Program.exe文件


运行Program.exe "CS"是输入的args[0],名字

命令行下编译C#——csc C#基础不扎实,今天开始从头看起! 首先在新建个记事本文件,命名为hello.cs,内部代码如下: using System; class Hello { static void Main() { Console.WriteLine("Hello, World"); Console.Out.WriteLine("Hello World");   //Console.WriteL 阅读详情

相关推荐

c#学习笔记(一)——visual studio 的安装 与 hello world 程序

visual studio 的安装visual studio是微软提供的一款开发编译工具它的功能很强大,也可以写除了c#之外的其他程序,我们以后就用它来写代码。vs共有3个版本,分别为社区版、专业版、企业版,其中社区版是免费的,我们可以使用这个版本。正常情况下我们下载的是一个.ios的镜像,可以双击用文件管理器打开,这也是win8以上的windows新增加的一个功能好像叫做虚拟光驱,如果你使用的是低

Jokeroller's Blog 4114

C#命令行编译器csc.exe编译HelloWorld程序

1.配置C#命令行编译器: 我的电脑 —〉高级 —〉环境变量 —〉Path —〉添加";C:\Windows\Microsoft.NET\Framework\v2.0.50727"(Path的最后一个路径虽版本的改变而改变)。csc.exe(C#命令行编译器)就放在该目录下。通过csc /?来查看所有参数。 2.配置其它.NET命令行工具 我的电脑 —〉高级 —〉环境变量 —〉Path —〉...

weixin_34272308的博客 375

CSC命令的用法

CSC环境变量的设置及使用CSC命令的几个例子:<br>一个或者多个源文件使之生成EXE文件,也可将一部分文件生成为EXE文件一部分生成为DLL文件。

C#-Winform窗体程序基础环境搭建

本文介绍了Windows Forms应用程序开发的基本流程。首先创建csproj项目文件,配置编译选项和引用库;然后实现Main入口函数,初始化窗体应用程序;接着通过Controls.Add方法添加Label等控件,并设置按钮点击等事件回调;最后使用Timer实现窗体循环逻辑。整个过程涵盖了从项目创建到界面开发的完整步骤,展示了Windows Forms应用程序的基本开发模式。

骑砍战团&霸主MOD开发 1341

csc.exe已停止工作

csc.exe已停止工作,很多时候需要重启电脑才能解决,很头疼,根据文档内容操作瞬间搞定。

2-6-1-1 QNX编程入门之进程和线程(一)

文章围绕进程和线程展开介绍。先是将进程类比为房子,线程类比为居住者,阐述其基本概念,如进程占用内存,线程可共享内存。接着讲解同步相关内容,介绍了互斥,线程通过互斥锁来控制对特定资源的访问,像使用浴室一样。还提到优先级,线程按优先级和等待时长来决定获取资源顺序。此外,说明了信号量,以厨房为例,区分计数为 1 和大于 1 的信号情况,且指出信号量可当互斥锁用,但互斥锁是特殊用途信号量,二者存在区别,最后提及后续会介绍其他同步机制。

星原飞火的博客 1324

C#代码命令行下编译和C#项目(Project)结构介绍

C#代码命令行下编译和C#项目(Project)结构介绍

cnds123的专栏 1万+

Stata实战:DID平行趋势检验完整操作指南(附reghdfe+coefplot代码)

本文提供了一份使用Stata进行DID平行趋势检验的完整实战指南。文章详细讲解了从数据准备、生成相对时间变量,到利用reghdfe命令构建动态效应模型,以及使用coefplot命令进行结果可视化的全流程操作。核心在于通过检验政策前交互项的显著性,验证处理组与对照组是否满足平行趋势假设,为后续因果推断奠定可靠基础。

weixin_29231725的博客 1381

csc 命令详解

csc是.NET Framework 的SDK中提供的一个用于编译C#源程序文件的工具,是大部分拥有图形界面的C#集成开发环境的基础。   文件名称:     csc.exe   位置:   C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe    注意:v2.0.50727为您所安装的Framework框架文件夹版本名称

wangluojisuan的专栏 4191

Nacos 2.3.2实战:5分钟搞定达梦数据库插件配置(含避坑指南)

本文详细介绍了在Nacos 2.3.2中配置达梦数据库数据源插件的完整实战流程。通过解析SPI插件机制,提供从环境准备、插件编译部署到核心配置的逐步指南,并重点分享了驱动加载、SQL兼容性等高频问题的避坑解决方案,助力开发者高效完成国产化数据库适配。

weixin_29200485的博客 499

二、基于C语言的JPEG解码代码详解

// JPEG解码 // 输入JPEG后输出Bitmap #include <stdio.h> #include <stdlib.h> #pragma warning(disable : 4996) unsigned int BuffIndex; // JPEG数据的位置 unsigned int BuffSize; // JPEG数据的大小 unsigned int BuffX; // 图像的横向尺寸 unsigned int BuffY; //

m0_37633745的博客 4456

利用CSC编译器生成WPF的 Hello World程序

有研究了三个多小时,终于搞定了,写完博客一定要去休息会。。。。   csc,相信有一部分人肯定了解或者用过。csc,是C#的编译器,通过一些的参数达到编译CS文件为可执行文件的目的。 百度上有一些csc的内容,但并没有关于csc编译器编译生成WPF应用的,因此特写此文,并非重复写很多遍的东西。 使用csc编译WPF程序,目的有二: 1.有助于提高...

weixin_30731305的博客 338

FH8626V100之开发环境搭建

FH8626V100是富瀚微出的一款带摄像头的方案,开发工具在Linux 上进行。版本 Ubuntu 20.04 64位。

xue_nuo的博客 1万+

使用CSC.EXE编译第一个HELLO WORLD

坐的没事,下了个C#2008,看帮助文件写了个HELLO.CS的源文件: //hello.cs //Show "Hello Word!" using system; class hello {       public static void Main()         {                 console.writeline("Hello World!");         }

老汉学IT 656

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2640

【乐企文件生成工程】关于乐企文件生成工程的详细介绍

发票文件生成方式有两种思路:1、根据已有的OFD模板,动态替换ofd模板内容;之后将ofd转pdf(局限:单行问题不大)详情可以在此处了解2、根据html模板动态占位:该工程就是这种方式 ,目前效果良好,可看下图。拿去即用的源码!无任何保留,当然也并不是所有票种都支持(时间有限、精力有限、已经连着转了,要冒烟了…)

九七的博客 2031

C# 程序结构

C# Hello World 实例 一个 C# 程序主要包括以下部分: 命名空间声明(Namespace declaration) 一个 class Class 方法 Class 属性 一个 Main 方法 语句(Statements)& 表达式(Expressions) 注释 让我们看一个可以打印出 "Hello World" 的简单的代码: using System; namespace HelloWorldApplication { class Hello..

qiz02的博客 522

Centos 7 Linux 安装单机 Hadoop(HDFS):下载、安装、配置、测试

本文详细介绍了在 CentOS 7 系统上安装与配置单机 Hadoop(HDFS)的完整流程,涵盖 JDK 环境准备、Hadoop 安装包下载与部署、核心配置文件(core-site.xml、hdfs-site.xml 等)修改、SSH 免密登录设置、HDFS 格式化及服务启动,并通过命令行与 Web 界面验证 HDFS 和 YARN 功能,适合 Hadoop 初学者快速搭建本地测试环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3237

从Hello World到.NET网站开发:深入理解C#程序结构与编译原理

在软件开发领域,程序结构是构建任何应用程序的基础框架,它定义了代码的组织方式和执行逻辑。从底层原理来看,编译器将高级语言源代码转换为中间语言,再通过运行时环境即时编译为机器码执行,这一过程确保了代码的跨平台性和运行效率。对于工程实践而言,理解命名空间、类、方法等核心构件如何协同工作,掌握编译与执行的完整链路,是构建可维护、高性能应用的关键技术价值。特别是在ASP.NET Core网站开发场景中,程序结构演变为服务配置与请求处理管道的复合模式,为Razor Pages、MVC等现代Web框架提供了坚实基础。本

weixin_30614109的博客 372

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

C#程序结构解析:从Hello World到命名空间与Main方法

理解编程语言的基础结构是掌握其开发能力的关键,这涉及到程序如何组织、编译和运行的核心原理。在C#和.NET平台中,程序通过命名空间进行逻辑分层,使用类作为功能封装的基本单元,并通过Main方法作为执行入口点。这种结构设计不仅保证了代码的可维护性和可扩展性,还为构建各类应用程序提供了统一的基础框架。从简单的控制台应用到复杂的Web开发,如ASP.NET Core Razor Pages,都建立在这一基础结构之上。本文以Hello World程序为起点,深入解析C#程序的骨架,帮助开发者建立扎实的编程基础,并平

weixin_34167819的博客 381

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# 入门之 Hello World

using System;namespace HelloWorld{class Hello{static void Main(){System.Console.WriteLine("Hello World");}}}将以上代码保存为 hello.cs打开命令行,运行  csc h

大事龙 1807

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C#,深入浅出全接触(二)

在一个C#程序中,可以通过一个元素的完整资格名称来识别它,这个资格名称表明出层次关系。尽管编译后的结果文件包含.exe后缀,但hello.exe却不是一个真正的、明确的CPU代码段。实际上,如果两个类的名称发生冲突,但只要它们分别属于不同的名称空间,两个类仍然是各自唯一的。因为System是存储系统类的名称空间,程序中用来在控制台上显示输出的Console(控制台)类就是在System 名称空间中定义的。一个C#程序包含一个类,这个类中至少有一个公用的静态方法Main,这个方法对程序进行初始化并终止程序。

biyusr的专栏 635

编写“Hello,World”程序

using System;public class Program{ public static void Main() { Console.WriteLine("Hello,Word"); Console.ReadLine(); ...

and99264的博客 306

cmd编译运行cs文件.

1、cs文件 class Hello { static void Main() { System.Console.WriteLine("Heollo,World!"); } } 2、编辑cs文件为exe文件 csc /out:E:\test\c.exe E:\test\c.cs E:\test\c.cs \\文件路径 E:\test\c.exe \\编译输出路径 ...

忘川 1万+
上一篇: 关于typedef的用法总结
下一篇: C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件
CB_CB
博客等级 码龄18年 13粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值