MSBuildWorkspace.Create, похоже, работает неправильно

Я пытаюсь открыть решение и хочу передать проект.. но solution.Projects всегда пуст. Ниже мой код. Я что-то пропустил?

var workspace = MSBuildWorkspace.Create(ImmutableDictionary<string, string>.Empty);
var solution = workspace.OpenSolutionAsync(solutionPath).Result;
var project = solution.Projects.FirstOrDefault(p => p.Name == projectName); //Here solution.Projects comes empty(count 0)

Ответ 1

Если я правильно читаю ваши комментарии, ваш код работает в Visual Studio, и вы пытаетесь создать рабочее пространство для соответствия любому решению, которое в настоящее время открыто. В этом случае не используйте MSBuildWorkspace. MSBuildWorkspace никогда не должно использоваться внутри devenv.exe. Следуйте ответам на этот вопрос, который позволяет получить прямой доступ к модели Roslyn, которую мы уже создали поверх модели решения.