用途:.NET 10 SDK 的文件式应用允许在单个 .cs 文件中构建、运行和发布 C# 程序,无需创建 .csproj。适用于脚本、工具类和小型应用。注意本功能不是文件 I/O。
主要能力:SDK 根据源码顶部的 #: 指令自动生成项目配置。支持四类指令:#:package 添加 NuGet 包引用(可 @版本 或 @* 取最新稳定版,无版本时需配置中央包管理);#:sdk 指定 SDK(默认 Microsoft.NET.Sdk);#:property 设置 MSBuild 属性,支持属性函数与条件表达式;#:project 引用其他项目文件。所有指令必须置于 C# 代码之前。
用法:dotnet run app.cs、dotnet run --file app.cs、dotnet app.cs 或从标准输入 dotnet run -。构建用 dotnet build app.cs,清理用 dotnet clean app.cs 或 dotnet clean file-based-apps,发布用 dotnet publish app.cs,打包工具用 dotnet pack app.cs,还原用 dotnet restore app.cs。默认启用原生 AOT 并设置 PackAsTool=true,可用 #:property 关闭。Unix 下可用 shebang 直接执行,但需 LF 行尾且无 BOM。支持启动配置文件与用户机密。
迁移与限制:可用 dotnet project convert app.cs 自动转换为项目。当需要多文件、复杂 MSBuild 定制、测试框架或 CI/CD 集成时应转项目。默认构建输出在系统临时目录,发布输出在 .cs 旁的 artifacts 目录。不要将文件式应用放入 .csproj 项目目录,以免继承构建配置;并发运行需先 dotnet build app.cs 再用 --no-build。dotnet test 不适用于文件式应用。其余未在资料中提供的细节暂未说明。
适用场景:快速脚本、命令行工具、小型应用原型。