diff --git a/sources/editor/Stride.Core.Assets.Editor/ViewModel/SessionViewModel.cs b/sources/editor/Stride.Core.Assets.Editor/ViewModel/SessionViewModel.cs index 41e724355f..46a0a93ea0 100644 --- a/sources/editor/Stride.Core.Assets.Editor/ViewModel/SessionViewModel.cs +++ b/sources/editor/Stride.Core.Assets.Editor/ViewModel/SessionViewModel.cs @@ -496,10 +496,20 @@ public override void Destroy() private void AutoSelectCurrentProject() { - var currentProject = LocalPackages.OfType().FirstOrDefault(x => x.Type == ProjectType.Executable && x.Platform == PlatformType.Windows) ?? LocalPackages.FirstOrDefault(); - if (currentProject != null) + var executableProjects = LocalPackages + .OfType() + .Where(x => x.Type == ProjectType.Executable && x.Platform == PlatformType.Windows); + + PackageViewModel selectedProject = executableProjects + // Prefer solutions with an existing *.sdpkg + .FirstOrDefault(x => x.PackageContainer is SolutionProject { IsImplicitProject: false }); + + selectedProject ??= executableProjects.FirstOrDefault(); + selectedProject ??= LocalPackages.FirstOrDefault(); + + if (selectedProject != null) { - SetCurrentProject(currentProject); + SetCurrentProject(selectedProject); } }