Skip to content

Add .slnx solution format support - #2703

Open
mrt181 wants to merge 1 commit into
OmniSharp:masterfrom
mrt181:feat/slnx-support
Open

Add .slnx solution format support#2703
mrt181 wants to merge 1 commit into
OmniSharp:masterfrom
mrt181:feat/slnx-support

Conversation

@mrt181

@mrt181 mrt181 commented Mar 21, 2026

Copy link
Copy Markdown

Adds .slnx support to OmniSharp. Closes #2699.

.slnx is the default solution format in .NET 10+. Tools embedding OmniSharp (e.g. sonarlint-language-server) still use an embedded build that only understands .sln — they work fine with .sln in .NET 10 but fail on .slnx. This unblocks them.

Uses Microsoft.VisualStudio.SolutionPersistence to parse both .sln and .slnx through SolutionSerializers.GetSerializerByMoniker(), replacing the hand-rolled global section parsing with a single unified code path.

Testing locally with installed net10.0 sdk

AbstractMSBuildTestFixture reads OMNISHARP_TEST_SDK_PATH env var to override MSBuild SDK discovery. Pass it to dotnet test:

dotnet test tests/OmniSharp.MSBuild.Tests/OmniSharp.MSBuild.Tests.csproj -f net10.0 \
  --filter "FullyQualifiedName~WorkspaceInformationTests" \
  --environment OMNISHARP_TEST_SDK_PATH=/path/to/sdk/6.0.428

@mrt181
mrt181 force-pushed the feat/slnx-support branch from aabe64f to af01f98 Compare March 21, 2026 22:06
@mrt181 mrt181 changed the title feat(msbuild): add .slnx solution format support Add .slnx solution format support Mar 24, 2026
@mrt181

mrt181 commented Mar 24, 2026

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

Comment thread src/OmniSharp.MSBuild/SolutionParsing/SlnxReader.cs Outdated
@mrt181
mrt181 force-pushed the feat/slnx-support branch 3 times, most recently from 03bb582 to e8be8f6 Compare March 25, 2026 07:07
@mrt181
mrt181 force-pushed the feat/slnx-support branch from e8be8f6 to 67b321c Compare March 25, 2026 09:35
@OoLunar

OoLunar commented Jul 20, 2026

Copy link
Copy Markdown

What's currently blocking this PR from being merged? I'm unable to work with .NET 10 without this. A temporary workaround for this is by using the sln file format instead of slnx, which can be created by executing dotnet new sln --format sln through the .NET CLI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Is .slnx support planned?

3 participants