Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用代码分析器类打开解决方案_C#_Roslyn_Roslyn Code Analysis - Fatal编程技术网

C# 无法使用代码分析器类打开解决方案

C# 无法使用代码分析器类打开解决方案,c#,roslyn,roslyn-code-analysis,C#,Roslyn,Roslyn Code Analysis,我正试图用微软提供的软件包构建一个简单的静态代码分析程序。所以我想先打开解决方案,然后通过代码打开项目,然后获取所有文档并用我的方法进行分析 这是我的方法,我正在其他地方调用,我仔细检查了解决方案路径是否正确。您可以看到我使用的名称空间 using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Formatting; using Mic

我正试图用微软提供的软件包构建一个简单的静态代码分析程序。所以我想先打开解决方案,然后通过代码打开项目,然后获取所有文档并用我的方法进行分析

这是我的方法,我正在其他地方调用,我仔细检查了解决方案路径是否正确。您可以看到我使用的名称空间

using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Formatting;
using Microsoft.CodeAnalysis.MSBuild;

 public class Fixer
{
 public Fixer(string solutionPath)
        {
           using (var workspace = MSBuildWorkspace.Create())
            {
                _solution = workspace.OpenSolutionAsync(_solutionPath).Result;
            }
        }
}
在那之后我想

public IEnumerable<Document> GetDocuments(Solution solution)
        {
            foreach (var projectId in solution.ProjectIds)
            {
                var project = solution.GetProject(projectId);
                foreach (Document document in project.Documents)
                {
                    if (document.SupportsSyntaxTree)
                        yield return document;
                }
            }
        }

public IEnumerable<MethodDeclarationSyntax> GetMethods(IEnumerable<Document> documents)
            {
                return documents.SelectMany(p => p.GetSyntaxRootAsync().Result.DescendantNodes().OfType<MethodDeclarationSyntax>());
            }
对于该解决方案中的所有项目

我试图更新我使用的nuget软件包。什么也没发生。主要问题是什么? 我们将感谢您的指导


谢谢。

您是否安装了Microsoft.CodeAnalysis.CSharp.Workspaces软件包?是的,我安装了该软件包您的项目的目标框架是什么?我使用.net 4.6.2处理所有类型的项目。
{[Failure] Cannot open project '.\RunningDiagnostics.csproj' because the language 'C#' is not supported.}