Will migrating a .sln solution to .slnx cause problems with the .slnlaunch file?

Rod Falanga 1,156 Reputation points
2026-09-07T13:13:45.04+00:00

I'm working with a Visual Studio solution which has 9 Visual Studio projects in it. It was written using .NET 8. I want to migrate it to .NET 10 where I can continue working with it with VS 2026. I had changed the solution to launch multiple projects when debugging. To my surprise, that created a .slnlaunch file. I've modified other Visual Studio solutions in the past to use multiple startup projects, but I never knew that it would create a .slnlaunch file. Now I'm wondering if running the command dotnet sln migrate will cause a problem for the .slnlaunch file?

Developer technologies | Visual Studio | Setup
0 comments No comments

Answer accepted by question author
Jay Pham (WICLOUD CORPORATION) 4,435 Reputation points Microsoft External Staff Moderator
2026-09-08T00:29:25.07+00:00

Hi @Rod Falanga ,

Migrating from .sln to .slnx is not expected to require changes to your .slnlaunch configuration, provided the solution keeps the same base name and location, and the project paths remain unchanged.

Microsoft documents dotnet sln migrate as generating an .slnx solution file from an .sln file. Separately, the multi-project launch profile documentation explains that launch profiles are stored in a JSON .slnLaunch file alongside the solution. Its example identifies projects by their paths and startup actions. This supports expecting your existing profile to remain usable, although these documents do not explicitly guarantee profile preservation during migration.

The appearance of this file is also consistent with Microsoft’s documentation: multi-project launch profiles are available starting with Visual Studio 2022 version 17.11. This is distinct from the older ability to configure multiple startup projects. The Share Profile option determines whether a profile is saved in a user-specific file or one intended for source control.

I recommend checking the solution-format change separately from the .NET upgrade:

  1. Back up or commit your current solution and launch configuration, then run the following command, replacing YourSolution with your actual solution name:
    
       dotnet sln YourSolution.sln migrate
    
    
  2. Keep the existing .slnlaunch file, open YourSolution.slnx in Visual Studio 2026, select your launch profile from the toolbar, and press F5 to verify that the intended projects start.
  3. If the profile is missing or incorrect, right-click the solution > Configure Startup Projects. Verify the selected projects, startup actions, and launch order, then select Apply. If the profile controls are unavailable, follow the feature-enablement instructions in the Microsoft article above.

Upgrading from .NET 8 to .NET 10 is a separate operation: dotnet sln migrate does not retarget your projects or update their dependencies. Microsoft’s .NET upgrade guidance covers those changes. Switching to .slnx is not a prerequisite for that upgrade; the .NET CLI documentation supports both solution formats.

If you found my response helpful or informative, I would greatly appreciate it if you could provide feedback by interacting with the system or leaving a comment below.

Thank you.

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

Answer accepted by question author
Marcin Policht 106.8K Reputation points MVP Volunteer Moderator
2026-09-07T14:41:18.06+00:00

In short, no. Running dotnet sln migrate should not cause a problem for the .slnlaunch file. The .slnlaunch file is a separate Visual Studio file that stores the solution's launch/debug configuration, including which projects are selected as startup projects and how they are launched. It is not part of the .sln file format that dotnet sln migrate is converting.

dotnet sln migrate is intended to migrate the traditional .sln solution file to the newer solution format, producing a .slnx file. It operates on the solution itself and its project references; it does not convert, rewrite, or remove the .slnlaunch file. Your multi-project startup configuration should therefore remain intact.

.slnlaunch is independent of the target framework. If your nine projects continue to have the same project paths and project types after you retarget them to net10.0, the launch configuration should continue to work. If you rename projects, move them, or change their project paths as part of the migration, you may need to update the .slnlaunch configuration accordingly.

Also, the fact that you are seeing .slnlaunch now does not necessarily mean Visual Studio has only recently acquired multi-project startup support. Visual Studio has supported multiple startup projects for a long time; .slnlaunch is the persisted representation of launch profiles/settings used by newer Visual Studio versions. So it is quite possible that older solutions you worked with stored the equivalent information differently or simply did not expose a separate .slnlaunch file in the way current Visual Studio does.


If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.

hth

Marcin

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.