最直接方式是执行 dotnet new console -n MyConsoleApp 创建项目,-n 参数指定无空格项目名;Program.cs 默认用顶层语句隐式生成 Main 方法;编译运行用 dotnet run,引用 NuGet 包需修改 .csproj 并启用隐式全局 using。

用 dotnet CLI 快速创建控制台项目
最直接的方式是用 .NET SDK 自带的 dotnet 命令,无需打开 Visual Studio。确保已安装 .NET 6 或更高版本(推荐 .NET 8),终端执行:
dotnet new console -n MyConsoleApp
这会生成一个含 Program.cs 和 .csproj 的标准项目。注意:-n 参数指定项目名,不能含空格或特殊字符(如 My-Console-App 会失败)。
常见错误:运行后提示 dotnet: command not found —— 说明未正确安装 SDK 或 PATH 未生效,需重启终端或手动添加 dotnet 路径。
理解 Program.cs 的简化语法(C# 12 默认模板)
新模板默认使用顶层语句(top-level statements),没有显式 class 和 Main 方法声明。实际等价于:
using System;Console.WriteLine("Hello, World!");
这种写法隐式生成一个静态 Main 方法和封闭类。若需定义自己的类、方法或使用 async Main,必须手动补全结构:
using System; using System.Threading.Tasks;class Program { static async Task Main(string[] args) { await Console.Out.WriteLineAsync("Hello, async!"); } }
关键点:async Task Main 是合法入口,但顶层语句不支持直接写 await,必须切换回传统结构。
编译与运行的两种常用方式
开发阶段推荐直接运行源码,跳过显式编译步骤:
-
dotnet run:自动恢复依赖、编译并执行,适合快速验证 -
dotnet build→dotnet MyConsoleApp.dll:先生成中间产物,适合调试或部署检查输出目录
注意:dotnet run 默认使用 Debug 配置;加 --configuration Release 可测试发布版行为。若程序读取命令行参数,传参方式为:dotnet run -- arg1 arg2(-- 后的内容透传给程序)。
引用 NuGet 包时要注意 project 文件配置
添加包不是靠“右键引用”,而是修改 .csproj 文件。例如引入 Newtonsoft.Json:
Exe net8.0
改完保存后,首次运行 dotnet run 会自动执行 dotnet restore。若遇到包还原失败,检查 Version 是否拼错,或是否误用了预发行版(如 14.0.0-preview1)而没加 --prerelease 参数。
真正容易被忽略的是:.NET 6+ 控制台模板默认启用隐式全局 using(),这意味着 System 等常用命名空间自动引入——删掉 using System; 也不会报错,但自定义类里仍需显式 using 第三方命名空间。










