Skip to content

[Breaking change]: dotnet new sln defaults to SLNX file format #48192

@baronfel

Description

@baronfel

Description

In .NET 10, dotnet new sln will generate a SLNX-format solution file instead of a SLN-formatted solution file.

Version

.NET 10 RC 1

Previous behavior

dotnet new sln created a SLN-format solution file similar to

# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
                Release|Any CPU = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
        EndGlobalSection
EndGlobal

New behavior

dotnet new sln creates a SLNX-format solution file similar to

<Solution>
</Solution>

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

Support for SLNX was added in 9.0.200, and it's proven to be a stable, understandable format for developers. It's well-supported by all major .NET tooling and is much easier for developers to maintain. We want to encourage the usage of the format to make everyone's lives simpler.

Recommended action

If a SLN-formatted solution is needed, use dotnet new sln --format sln to get a SLN-formatted solution file.

Feature area

SDK

Affected APIs

No response


Associated WorkItem - 484865

Metadata

Metadata

Labels

📌 seQUESTeredIdentifies that an issue has been imported into Quest.breaking-changeIndicates a .NET Core breaking change

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions