我是第一次尝试 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;
...
...
当我在 MSBuildWorkspace 类上执行“转到定义”时,我能够导航到类的定义,我可以清楚地看到它的命名空间是 Microsoft.CodeAnalysis.MSBuild(见下图)。
但是尽管如此,我还是不断收到错误消息 “类型或命名空间 MSBuild 不存在于命名空间 'Microsoft.CodeAnalysis' 中,在我用注释突出显示的 using 语句中” 。我似乎无法理解这个错误背后的原因。我错过了什么吗?
最佳答案
感谢@CZabransky 提供的链接,我找到了答案。
https://stackoverflow.com/a/23621818/2377928
基本上我忽略了我收到的以下警告。 (不应该忽视警告的另一个原因!o_O)
我的项目面向 Framework 4.5 版,因此该程序集未构建,因为它是针对 v4.5.2 版本构建的。我必须将框架版本定位到 4.6 并且成功构建了解决方案。
希望这可以帮助!