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使用标准库的应用vartargetDateDateTime.Now;Console.WriteLine(当前时间是: targetDate);Console.WriteLine(当前日期是今年的第 {0} 天,targetDate.DayOfYear);示例2:sales-data-analyse.cs依赖第三方库的应用#:property PublishAotfalse#:package CsvHelper33.0.1usingCsvHelper;usingSystem.Text.Json;usingSystem.Globalization;varjsonawaitFile.ReadAllTextAsync(sales_data.json);varsalesJsonSerializer.DeserializeListSaleRecord(json);vartopProductssales.GroupBy(ss.Product).Select(gnew{Productg.Key,TotalAmountg.Sum(ss.Amount)}).OrderByDescending(gg.TotalAmount).Take(10).ToList();usingvarwriternewStreamWriter(top_products.csv);usingvarcsvnewCsvWriter(writer,CultureInfo.InvariantCulture);csv.WriteRecords(topProducts);Console.WriteLine(报告生成成功);recordSaleRecord(stringProduct,decimalAmount,DateTimeDate);分别使用下面的命令运行这两个示例dotnet run .\date-checker.cs dotnet run .\sales-data-analyse.cs常用指令要去使用#:开头的指令来配置包、sdk、编译选项。使用#:sdk指令来选择 SDK默认的SDK是Microsoft.NET.Sdk如果需要使用Microsoft.NET.Sdk.Web来构建 web 应用可以使用下面的指令#:sdkMicrosoft.NET.Sdk.Web使用#:package指令来引入第三方库#:package CsvHelper33.0.1#:package CsvHelper*#:package CsvHelper33.*上面三个版本分别表示使用指定版本、最新版本和指定主版本的库。使用#:property指令设置编译选项编译属性就是csproj文件中的属性可以使用#:property指令来设置#:property LangVersionpreview#:property Nullabledisable#:property PublishAotfalse#:property TargetFrameworknet10.0使用#:reference指令来引用本地程序集#:referencepath/to/your/library.dll使用#:project指令来引用本地项目#:projectpath/to/your/project.csprojCLI 支持下面是一些支持基于文件的应用的 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 appsExploring C# File-based Apps in .NET 10C# File-based Apps in .NET 10: Run and Build Apps from a Single .cs File如果这篇文章对你有帮助欢迎点赞、在看、转发给更多 .NET 开发者 ❤️