只需一行命令!用 dotnet run 直接运行 .cs 文件

B站影视 韩国电影 2025-05-26 09:21 3

摘要:usingSystem;namespaceMyConsoleApp{classProgram{staticvoidMain(stringargs){Console.WriteLine("Hello, World!");// Add your applicati

作为一名 C# 开发者,你一定对下面这段熟悉的代码结构非常熟悉:

usingSystem;
namespaceMyConsoleApp
{
classProgram
{
staticvoidMain(string args)
{
Console.WriteLine("Hello, World!");
// Add your application logic here
}
}
}

这段代码展示了一个典型的 .NET 项目结构:

引入 System 命名空间

自定义命名空间 MyConsoleApp

定义 Program 类,其中包含静态的 Main 方法,接收字符串数组作为入参

在 Main 方法中打印出 “Hello, World!”

这个类文件是应用的入口点

同时,项目中通常还包含一个 .csproj 文件,它是 XML 格式的项目文件,用来管理:

.NET 使用的版本

程序集名称

第三方包依赖

编译配置等项目元数据

同时还定义了一个 .csproj 的文件,这个文件是一个 xml 的文件,来管理我们整个项目的一些配置,例如:.NET 使用的版本、程序集的名字以及项目依赖包。

在 .NET 6 之后,开启了一种全新的启动项目模式,看上去比之前的清爽了很多。但是它依然绑定一大堆文件,例如 .csproj:

usingSystem;
Console.WriteLine("Hello, World!");

这个改动不再需要手动声明 Main 方法,甚至类名和命名空间也可以省略,语法更直观、代码更简洁。但它仍然依赖 .csproj 项目文件。你需要使用 dotnet new console 创建项目,并用 dotnet run 运行。

在 .NET 10 中,微软进一步突破:你现在可以直接运行一个 .cs 文件,而不需要任何 .csproj 或解决方案文件。例如:

Console.WriteLine("Hello, World!");

你只需在命令行中执行:

dotnet run MyApp.cs

这样就能运行你的应用程序。这种极简模式非常适合:

编写小型工具

脚本型应用

快速验证思路

如果你希望在独立 .cs 文件中引用第三方包,.NET 提供了 #:package 指令进行包管理。例如:

#:package Humanizer@2.*

usingHumanizer;
varstarted = DateTimeOffset.Parse("2025-05-19");
varsince = DateTimeOffset.Now - started;
Console.WriteLine($"Started{since.Humanize}ago");

这段代码引用了 Humanizer 库,将时间差格式化为人类可读的语句。

你也可以用相似方式构建 ASP.NET Core Web API 应用,首先指定 SDK 和依赖包:

#:sdk Microsoft.NET.Sdk.Web
#:package Microsoft.AspNetCore.OpenApi@10.0.0-preview.4.*

varbuilder = WebApplication.CreateBuilder(args);
builder.Services.AddOpenApi;
varapp = builder.Build;
app.MapGet("/", => "Hello World!");
app.Run;

这段代码展示了一个无需 .csproj 文件的极简 Web API 服务。

.NET 的发展方向正在朝着更灵活、更轻量、更脚本化的方向演进。从传统的项目结构,到无需显式 Main 方法,再到直接运行 .cs 文件并支持包引用和 Web 服务,.NET 正在成为真正现代化的开发平台。欢迎在评论区分享你看法,一起交流进步!github地址:https://github.com/bingbing-gui

来源:opendotnet

相关推荐