C# 也能像 Python 一样写脚本 | .NET 10 构建基于文件的应用
什么是基于文件的应用
在单个文件中编写代码,并且能够运行。在这方面 python 是课代表。如今 C# 也能做到了。在 .NET 10 中,微软引入了基于文件的应用(File-based Apps)的概念,允许开发者在单个 .cs 文件中编写、运行和构建应用程序。这种方式极大地简化了开发流程,特别适合于快速原型设计、脚本编写和小型工具的开发。
环境要求
得安装 .NET 10 SDK 才能使用基于文件的应用功能。可以通过下面的命令来检查 .net 版本:
| dotnet --version |
这里应该显示 10.0.0 或更高版本。
上示例
示例1: date-checker.cs 使用标准库的应用
| var targetDate = DateTime.Now; | |
| Console.WriteLine("当前时间是: " + targetDate); | |
| Console.WriteLine("当前日期是今年的第 {0} 天", targetDate.DayOfYear); |
示例2: sales-data-analyse.cs 依赖第三方库的应用
| using CsvHelper; | |
| using System.Text.Json; | |
| using System.Globalization; | |
| var json = await File.ReadAllTextAsync("sales_data.json"); | |
| var sales = JsonSerializer.Deserialize<List<SaleRecord>>(json); | |
| var topProducts = sales.GroupBy(s => s.Product) | |
| .Select(g => new | |
| { | |
| Product = g.Key, | |
| TotalAmount = g.Sum(s => s.Amount) | |
| }) | |
| .OrderByDescending(g => g.TotalAmount) | |
| .Take(10) | |
| .ToList(); | |
| using var writer = new StreamWriter("top_products.csv"); | |
| using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture); | |
| csv.WriteRecords(topProducts); | |
| Console.WriteLine("报告生成成功"); | |
| record SaleRecord(string Product, decimal Amount, DateTime Date); |
分别使用下面的命令运行这两个示例:
| dotnet run .\date-checker.cs | |
| dotnet run .\sales-data-analyse.cs |
指令#:的用法介绍
要去使用 #: 开头的指令来配置包、sdk、编译选项。
使用 #:sdk 指令来选择 SDK
默认的SDK是 Microsoft.NET.Sdk,如果需要使用 Microsoft.NET.Sdk.Web 来构建 web 应用,可以使用下面的指令:
使用 #:package 指令来引入第三方库
上面代码使用@指定版本号,三个版本分别表示使用指定版本、最新版本和指定主版本的最新库。
使用 #:property 指令设置编译选项
编译属性就是 csproj 文件中的属性,可以使用 #:property 指令来设置:
使用 #:reference 指令来引用本地程序集
使用 #:project 指令来引用本地项目
CLI 支持
下面是一些支持基于文件的应用的 CLI 命令:
dotnet run <file.cs>:运行指定的.cs文件。dotnet build <file.cs>:构建指定的.cs文件。dotnet publish <file.cs>:发布指定的.cs文件。dotnet pack <file.cs>:打包指定的.cs文件。dotnet project convert <file.cs>:转换指定的.cs文件为一个完整的项目。dotnet restore <file.cs>:还原指定的.cs文件中引用的包。dotnet clean <file.cs>:清理指定的.cs文件生成的输出。dotnet run <file.cs> -- <args>:运行指定的.cs文件,并传递额外的命令行参数。
文章中的实验代码,请参考 https://github.com/denglei1024/dotnet-file-based-apps。
参考引用:
- File-based apps
- Exploring C# File-based Apps in .NET 10
- C# File-based Apps in .NET 10: Run and Build Apps from a Single .cs File
如果这篇文章对你有帮助,欢迎点赞、在看、转发给更多 .NET 开发者 ❤️
2026-05-06 14:14:23【出处】:https://www.cnblogs.com/denglei1024/p/19979190
=======================================================================================
