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)); } } } }