适用于 .NET 10 的 SDK 和工具中的新增功能

本文介绍适用于 .NET 10 的 .NET SDK 中的新功能和增强功能。 它已针对预览版 4 进行更新。

修剪由框架提供的包引用

从 .NET 10 开始, NuGet 审核 功能现在可以修剪项目不使用的 框架提供的包引用 。 默认情况下, net 所有目标框架(例如 net8.0 ,和 net10.0)和 .NET Standard 2.0 及更高目标框架都启用此功能。 此更改有助于减少在生成过程中还原和分析的包数,从而缩短生成时间并减少磁盘空间使用量。 这也能够减少来自 NuGet 审计以及其他依赖项扫描机制的误报情况。

启用此功能后,可能会发现应用程序生成的 .deps.json 文件的内容会减少。 .NET 运行时提供的任何包引用都会从生成的依赖项文件中自动删除。

虽然此功能默认为列出的 TPM 启用,但可以通过在RestoreEnablePackagePruning项目文件或 false 文件中将属性设置为禁用此功能。

更一致的命令顺序

从 .NET 10 开始, dotnet CLI 工具包含常见命令的新别名,使它们更易于记住和键入。 下表显示了新命令。

新名词优先形式 别名
dotnet package add dotnet add package
dotnet package list dotnet list package
dotnet package remove dotnet remove package
dotnet reference add dotnet add reference
dotnet reference list dotnet list reference
dotnet reference remove dotnet remove reference

新的名词优先表单符合一般 CLI 标准,使 dotnet CLI 与其他工具更加一致。 虽然动词优先表单继续工作,但最好使用名词优先表单来提高脚本和文档中的可读性和一致性。

CLI 命令默认为交互式终端中的交互模式

现在,在交互式终端中,默认启用 --interactive 标志用于 CLI 命令。 此更改允许命令动态检索凭据或执行其他交互行为,而无需显式设置标志。 对于非交互方案,可以通过指定 --interactive false来禁用交互性。

原生 shell 制表符补全脚本

dotnet CLI 现在支持使用dotnet completions generate [SHELL]命令为常用 shell 生成原生自动补全脚本。 支持的 shell 包括bashfishnushellpowershellzsh。 这些脚本通过提供更快、更集成的选项卡完成功能来提高可用性。 例如,在 PowerShell 中,可以通过将以下内容添加到你的配置文件中来启用自动完成功能:

dotnet completions script pwsh | out-String | Invoke-Expression -ErrorAction SilentlyContinue

控制台应用可以原生创建容器映像

控制台应用现在可以通过 dotnet publish /t:PublishContainer 创建容器映像,而无需在项目文件中包含 <EnableSdkContainerSupport> 属性。 这使控制台应用与 ASP.NET Core 和 Worker SDK 应用的行为保持一致。

显式控制容器的图像格式

使用新的 <ContainerImageFormat> 属性可以显式地将容器映像的格式设置为 DockerOCI。 此属性替代默认行为,具体取决于基本映像格式以及容器是否为多体系结构。

对 Microsoft 测试平台的支持 dotnet test

从 .NET 10 开始,dotnet test 原生支持 Microsoft.Testing.Platform。 若要启用此功能,请将以下配置添加到 dotnet.config 文件:

[dotnet.test.runner]
name = "Microsoft.Testing.Platform"

如需了解更多详情,请参阅 测试 dotnet test