public async Task LoadSolutionAsync()
        {
            if (RootFolder is null || sdkManager.ActiveSdk is null)
            {
                return;
            }

            if (TemporarySolutionFolder is null)
            {
                var files = await RootFolder.GetFilesAsync();

                if (files.FirstOrDefault(s => s.FileType == ".sln" || s.FileType.Contains("proj")) is StorageFile originalSolutionFile)
                {
                    StorageFolder solutionsFolder = await GetTemporarySolutionsFolderAsync();

                    TemporarySolutionFolder = await RootFolder.CopyAsync(solutionsFolder, NameCollisionOption.ReplaceExisting, "bin", "obj");
                }
            }

            using (await solutionLoadLock.LockAsync())
            {
                Workspace.CloseSolution();

                if (TemporarySolutionFolder != null)
                {
                    var files = await TemporarySolutionFolder.GetFilesAsync();

                    if (files.FirstOrDefault(s => s.FileType == ".sln") is StorageFile solutionFile)
                    {
                        await Task.Run(() => Workspace.OpenSolutionAsync(solutionFile.Path));
                    }
                    else if (files.FirstOrDefault(s => s.FileType.Contains("proj")) is StorageFile projectFile)
                    {
                        await Task.Run(() => Workspace.OpenProjectAsync(projectFile.Path));
                    }
                }
            }
        }