.NET SDK in .NET 11 Preview 3 - Release Notes
April 14, 2026 ยท View on GitHub
.NET 11 Preview 3 includes new SDK and CLI improvements:
- Solution filters can now be edited from the CLI
- File-based apps can be split across files
dotnet run -epasses environment variables from the command linedotnet watchadds Aspire, crash recovery, and Windows desktop improvements- Other CLI improvements
- Bug fixes
- Community contributors
.NET SDK updates in .NET 11:
Solution filters can now be edited from the CLI
dotnet sln can now create and edit solution filters (.slnf) directly from
the CLI (dotnet/sdk #51156). This
lets large repositories load or build a subset of projects without changing the
main solution. You can learn more about solution filters
in the documentation for them.
dotnet new slnf --name MyApp.slnf
dotnet sln MyApp.slnf add src/Lib/Lib.csproj
dotnet sln MyApp.slnf list
dotnet sln MyApp.slnf remove src/Lib/Lib.csproj
File-based apps can be split across files
File-based apps now support #:include, so shared helpers can move into
separate files without giving up the file-based workflow
(dotnet/sdk #52347). Roslyn also adds
editor completion for the directive
(dotnet/roslyn #82625).
#:include helpers.cs
#:include models/customer.cs
Console.WriteLine(Helpers.FormatOutput(new Customer()));
dotnet run -e passes environment variables from the command line
dotnet run -e FOO=BAR lets you pass environment variables from the command
line for local app runs, without requiring you to export shell state or edit
launch profiles (dotnet/sdk #52664).
This keeps short-lived configuration overrides on the command line instead of
in shell state or launch settings. Environment variables passed in this way will be available to MSBuild logic as RuntimeEnvironmentVariable Items for processing.
dotnet run -e ASPNETCORE_ENVIRONMENT=Development -e LOG_LEVEL=Debug
dotnet watch adds Aspire, crash recovery, and Windows desktop improvements
Preview 3 adds several dotnet watch updates for long-running local development
loops. It can now integrate with Aspire app hosts
(dotnet/sdk #53192), automatically
relaunch after a crash when the next relevant file change arrives
(dotnet/sdk #53314), and handle
Ctrl+C more gracefully for Windows desktop apps such as WinForms and WPF
(dotnet/sdk #53127).
Other CLI improvements
dotnet formatnow accepts--frameworkfor multi-targeted projects (dotnet/sdk #53202).dotnet testin MTP mode now supports--artifacts-path(dotnet/sdk #53353).dotnet tool execanddnxno longer stop for an extra approval prompt (dotnet/sdk #52956).
Bug fixes
- Fixed
dotnet tool install --sourcenot being respected for global and local tools (dotnet/sdk #52787). - Fixed
dotnet remove packagenot recognizing the project argument (dotnet/sdk #53401). - Fixed
NETSDK1005whendotnet runtargets a project that references projects with different target frameworks (dotnet/sdk #53523). dotnet workload repaircan recover from malformed/corrupted workload sets (dotnet/sdk #52434).- The
--self-containedoption now parses its passed-in value instead of always meaningtrue(dotnet/sdk #52333).
Community contributors
Thank you to all the community contributors who helped make this release possible!