C#语言的体系与编译过程
c# 语言介绍
C#(读作:See Sharp)是一种新式的,面向对象,类型安全的编程语言,开发人员利用 C#
能够生成在 .NET 中运行的多种安全可靠的应用程序,目前最新版本 C# 10 版本。
.NET 体系结构

从 Hello World 开始
// 简单的输入打印命令【c# 10 语法】
Console.WriteLine("Hello, World!");
//原始早期的写法
namespace MyApp
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
对比c# 10 和先前的语法:
1、减少了命令空间的编写
2、入口函数和入口类省略
3、在写法上,代码更加直观
相比较之下c# 10 语法模板直接生成了顶级语句,其余冗余函数以及类在编译期间通过IL 生成执行语句,具体相关写法函数参考".NET 6 中的 C# 控制台应用模板更改 - .NET | Microsoft Docs"
代码编译过程
代码的编译提供了两种编译方式;
- dotnet build
- 内部使用 MSBuild 生成项目,因此它支持并行生成和增量生成
- 引用,MSDN 文档:dotnet build 命令 - .NET CLI | Microsoft Docs
- MSBuild
- Microsoft 生成引擎是一个用于生成应用程序的平台。 此引擎(也称为 MSBuild)为项目
文件提供了一个 XML 架构,用于控制生成平台处理和生成软件的方式。 Visual Studio
会使用 MSBuild,但 MSBuild 不依赖于 Visual Studio。 通过在项目或解决方案文件
中调用 msbuild.exe,可以在未安装 Visual Studio 的环境中安排和生成产品。 - 引用MSDN 文档:MSBuild - MSBuild | Microsoft Docs
- Microsoft 生成引擎是一个用于生成应用程序的平台。 此引擎(也称为 MSBuild)为项目
MSBuild相关使用:
获取MSBuild 所在目录
在VS 中项目右键 ->[在终端打开],通过 get-Command MsBuild 命令查找MsBuild 安装目录,等到下面的相关信息:

使用MSBuild编译项目或解决方案
1、在vs 的终端中使用;直接输入命令 MSBuild 完成编译,相当于右键项目 生成 功能;
2、通过外置的MsBuild 完成编译:
- 打开MsBuild 所在目录
![]()
输入cmd 回车进入;或在当前文件目录下按下“Shift+鼠标右键” 选择“在windows 终端打开”进入命令行工具 - 输入命令:MSBuild xx.csproj/xx.sln -property:Configuration=Debug/Release; 即可

csc 命令
CSC 是netframework的SDK 中提供的一个用于编译C# 源程序文件的工具,是大部分用于图形界面的c#集成开发环境的基础。
简单示例用法:
csc /target:exe TestApp.cs
相关命令详解请参考:c#中csc命令的用法 - jack_Meng - 博客园 (cnblogs.com)
源生成器
源生成器是 C# 开发人员可以编写的一种新组件,允许执行两个主要操作:
- 检索表示正在编译的所有用户代码的编译对象。 可以检查此对象,并且可以编写适用于正在编译的代码的语法和语义模型的代码,就像现在使用分析器一样。
- 生成可在编译过程中添加到编译对象的 C# 源文件。 也就是说,在编译代码时,可以提供其他源代码作为编译的输入。
结合使用这两项操作能充分发挥源生成器的强大功能。 可以使用编译器在编译时构建的丰富元数据检查用户代码。 然后,生成器将 C# 代码发送回基于已分析数据的同一编译。 如果你熟悉 Roslyn 分析器,可以将源生成器视为可发出 C# 源代码的分析器。
源生成器作为编译阶段运行,如下所示:



浙公网安备 33010602011771号