Поделиться через


Новые возможности пакета SDK и инструментов для .NET 10

В этой статье описываются новые функции и улучшения пакета SDK для .NET для .NET 10. Оно обновлено для предварительной версии 5.

Очистка ссылок на пакеты, предоставляемые платформой

Начиная с .NET 10 функция аудита NuGet теперь может обрезать ссылки на пакеты, предоставляемые платформой , которые не используются проектом. Эта функция включена по умолчанию для всех net целевых платформ (например, net8.0 и net10.0) и .NET Standard 2.0 и более больших целевых платформ. Это изменение помогает уменьшить количество пакетов, которые восстанавливаются и анализируются во время процесса сборки, что может привести к более быстрому времени сборки и сокращению использования дискового пространства. Это также может привести к уменьшению количества ложных срабатываний при аудите NuGet и использовании других механизмов проверки зависимостей.

Если эта функция включена, может появиться сокращение содержимого созданных .deps.json файлов приложений. Все ссылки на пакеты, предоставленные средой выполнения .NET, автоматически удаляются из созданного файла зависимостей.

Хотя эта функция включена по умолчанию для перечисленных TFM, её можно отключить, установив значение RestoreEnablePackagePruning для свойства false в файле проекта или в файле Directory.Build.props.

Более согласованный порядок команд

Начиная с .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 по умолчанию для интерактивного режима в интерактивных терминалах

Теперь --interactive флаг включен по умолчанию для команд CLI в интерактивных терминалах. Это изменение позволяет командам динамически извлекать учетные данные или выполнять другие интерактивные действия, не требуя явного задания флага. Для неинтерактивных сценариев можно отключить интерактивность, указав --interactive false.

Скрипты встроенного автодополнения оболочки по клавише Tab

Теперь dotnet интерфейс командной строки поддерживает создание собственных скриптов завершения вкладок для популярных оболочк с помощью dotnet completions generate [SHELL] команды. Поддерживаемые оболочки включают bash, fish, nushell, powershell и zsh. Эти сценарии повышают удобство использования, предоставляя более быстрые и более интегрированные функции завершения вкладок. Например, в PowerShell можно включить автозаполнение, добавив следующее в $PROFILE:

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

Консольные приложения могут создавать образы контейнеров в собственном коде

Консольные приложения теперь могут создавать образы контейнеров через dotnet publish /t:PublishContainer, без необходимости в свойстве <EnableSdkContainerSupport> в файле проекта. Это обеспечивает соответствие поведения консольных приложений поведениям приложений ASP.NET Core и Worker SDK.

Явное управление форматом изображений контейнеров

Новое <ContainerImageFormat> свойство позволяет явно задать формат образов контейнеров либо Docker, или OCI. Это свойство переопределяет поведение по умолчанию, которое зависит от формата базового образа и того, является ли контейнер многоархитектурным.

Поддержка платформы тестирования Майкрософт в dotnet test

Начиная с .NET 10, dotnet test изначально поддерживает Microsoft.Testing.Platform. Чтобы включить эту функцию, добавьте следующую конфигурацию в файл dotnet.config :

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

Дополнительные сведения см. в разделе "Тестирование с помощью dotnet test".