C# 类型或命名空间';MSBuild';命名空间中不存在';微软代码分析';尽管能够导航到定义

C# 类型或命名空间';MSBuild';命名空间中不存在';微软代码分析';尽管能够导航到定义,c#,msbuild,roslyn,C#,Msbuild,Roslyn,我第一次尝试Roslyn,我正在编写一小段代码来阅读一个项目、类和类成员 我正在使用MSBuildWorkspace类创建Roslyn工作区(MSBuildWorkspace.create())。下面是我编写的代码的一小部分 using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.MSBuild; //Some problem in this line? Read on. ... ... var workspace = MS

我第一次尝试Roslyn,我正在编写一小段代码来阅读一个项目、类和类成员

我正在使用
MSBuildWorkspace
类创建Roslyn工作区(
MSBuildWorkspace.create()
)。下面是我编写的代码的一小部分

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.MSBuild;    //Some problem in this line? Read on.

...
...

var workspace = MSBuildWorkspace.Create();
Solution solutionToAnalyze =
                workspace.OpenSolutionAsync(pathToSolution).Result;
IEnumerable<Project> projectsToAnalyze =
                solutionToAnalyze.Projects;
...
...
使用Microsoft.CodeAnalysis;
使用Microsoft.CodeAnalysis.MSBuild//这方面有什么问题吗?继续读下去。
...
...
var workspace=MSBuildWorkspace.Create();
溶液分析法=
OpenSolutionAsync(pathToSolution).Result;
IEnumerable项目分析=
分析项目的解决方案;
...
...
当我对MSBuildWorkspace类执行“转到定义”时,我能够导航到该类的定义,并且可以清楚地看到它的命名空间为Microsoft.CodeAnalysis.MSBuild(请参见下图)


但尽管如此,我还是不断收到错误消息,“我用注释“突出显示的using语句中的名称空间“Microsoft.CodeAnalysis”中不存在类型或名称空间MSBuild。”。我似乎无法理解这个错误背后的原因。我遗漏了什么吗?

多亏了@CZabransky提供的链接,我找到了答案

基本上我忽略了下面的警告。(还有一个不应忽视警告的原因!o_o)

我的项目的目标是框架版本4.5,因此此程序集不是根据v4.5.2版本构建的。我必须将框架版本定为4.6,并成功构建解决方案


希望这有帮助

您需要添加对Nuget包
Microsoft.CodeAnalysis.Workspaces.MSBuild.dll
的引用,该引用来自于Nuget包
Microsoft.CodeAnalysis.Workspaces.MSBuild

此引用来自于哪个Nuget包?Microsoft.CodeAnalysis.Workspaces.MSBuild