本文介绍适用于 .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 包括bash
、fish
、nushell
和powershell
zsh
。 这些脚本通过提供更快、更集成的选项卡完成功能来提高可用性。 例如,在 PowerShell 中,可以通过将以下内容添加到你的配置文件中来启用自动完成功能:
dotnet completions script pwsh | out-String | Invoke-Expression -ErrorAction SilentlyContinue
控制台应用可以原生创建容器映像
控制台应用现在可以通过 dotnet publish /t:PublishContainer
创建容器映像,而无需在项目文件中包含 <EnableSdkContainerSupport>
属性。 这使控制台应用与 ASP.NET Core 和 Worker SDK 应用的行为保持一致。
显式控制容器的图像格式
使用新的 <ContainerImageFormat>
属性可以显式地将容器映像的格式设置为 Docker
或 OCI
。 此属性替代默认行为,具体取决于基本映像格式以及容器是否为多体系结构。
对 Microsoft 测试平台的支持 dotnet test
从 .NET 10 开始,dotnet test
原生支持 Microsoft.Testing.Platform。 若要启用此功能,请将以下配置添加到 dotnet.config 文件:
[dotnet.test.runner]
name = "Microsoft.Testing.Platform"
如需了解更多详情,请参阅 测试 dotnet test
。