MSBuildWorkspace: решение не содержит документов и проектов в Visual Studio 2019 - PullRequest
0 голосов
/ 13 мая 2019

Я хочу создать анализатор с использованием Roslyn, но сначала мне нужно получить все документы (файлы .cs) из целевого решения.

Я использовал следующий код из учебника Джоша Варти

        string solutionPath = @"C:\Users\hamza\Desktop\TestSolution\TestSolution.sln";
        var msWorkspace = MSBuildWorkspace.Create();

        var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result;
        foreach (var project in solution.Projects)
        {
            Console.WriteLine(project);
            foreach (var document in project.Documents)
            {
                Console.WriteLine(project.Name + "\t\t\t" + document.Name);
            }
        }

Но результат нулевой, я не получаю никаких документов или проектов.

версия MSBuildWorkspace 3.0.0 я пробовал также 2.10.0 но результат тот же.

У кого-нибудь есть идеи по этому поводу?или как это исправить?

1 Ответ

0 голосов
/ 13 мая 2019

После дополнительных исследований я нашел этот полезный пост на Github: https://github.com/dotnet/roslyn/issues/24767

этот код работал нормально

 var projectPath = @"C:\Users\hamza\Desktop\TestSolution\TestSolution.sln";
        using (var workspace = MSBuildWorkspace.Create())
        {
            var solution = workspace.OpenSolutionAsync(projectPath).Result;

            foreach (var project in solution.Projects)
            {
                foreach (var document in project.Documents)
                {
                    Console.WriteLine(project.Name + "\t\t\t" + document.Name);
                }
            }
        }

Наконец, чтобы все заработало нормально, я добавил этот пакет:

Install-Package Buildalyzer.Workspaces -Version 2.2.0

...