簡體   English   中英

MSBuildWorkspace:解決方案在Visual Studio 2019上不包含任何文檔和項目

[英]MSBuildWorkspace : solution contains no documents and no projects on Visual Studio 2019

我想使用roslyn創建一個分析器,但首先我需要從目標解決方案中獲取所有文檔(.cs文件)。

我使用了Josh Varty教程中的以下代碼

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

但結果是null,我沒有得到任何文件或項目。

MSBuildWorkspace版本是3.0.0我也試過2.10.0但結果是一樣的。

有人對此有所了解嗎? 或者如何解決這個問題?

經過更多研究后,我在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM