MSBuildWorkspace:解决方案在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);
            }
        }

但是结果是空的,我没有任何文档或项目。

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

最后,为了使一切正常,我添加了以下软件包:

安装包Buildalyzer.Workspaces-版本2.2.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio 2019开放解决方案文件不兼容

Visual Studio解决方案中的Markdown文档

Visual Studio 2019 拒绝构建解决方案 C++

在CMake中包含Visual Studio解决方案

Unity解决方案与Visual Studio不兼容

从Visual Studio解决方案中删除项目

在Visual Studio中查看多个项目/解决方案

在Visual Studio解决方案中仅构建特定项目

Visual Studio解决方案添加多个项目

Visual Studio解决方案显示(0个项目)

使用cmake在Mac上生成Visual Studio解决方案

Visual Studio解决方案(.sln)文件是否对创建它们的计算机有任何提示?

带有Git版本控制的TFS Online项目如何包含多个Visual Studio解决方案?

Visual Studio for Mac无法在任何解决方案中打开任何文件

Visual Studio 2015不显示任何解决方案的调试源文件

在Visual Studio 2019中,是否可以在解决方案文件之外配置项目路径?

如何在Visual Studio的同一解决方案上运行多个项目

Visual Studio不显示解决方案中的所有项目

我可以列出Visual Studio解决方案中的所有*不可用*项目吗?

如何构建和部署具有多个项目的Visual Studio解决方案

在 Visual Studio 解决方案中设置所有项目的运行时库

如何发布具有两个依赖项项目的Visual Studio解决方案?

在Visual Studio解决方案中查找和运行任何可运行(exe)项目的简便方法

从Visual Studio解决方案中将项目提取为单独的项目

在多项目Visual Studio解决方案中以不同配置编译项目

Visual Studio解决方案与Git项目和TFS项目混合

多项目Visual Studio解决方案无法调试一个项目dll

Visual Studio 抛出 LNK2019 和解决方案缺少头文件/源文件

解决方案探索中的区域选项不会在Visual Studio 2019中显示