为什么Roslyn编译包含元数据引用或项目引用,但不包括两者?

时间:2018-04-08 08:20:45

标签: c# compilation roslyn

我正在使用Roslyn来查看引用了许多系统程序集的项目,如下所示:

var workspace = MSBuildWorkspace.Create();
_solution = workspace.OpenSolutionAsync(_solutionPath).Result;
var project = _solution.Projects.Single(p => p.Name == "TestProject");

当我查看project.MetadataReferences它有9个元素和project.ProjectReferences没有元素 - 所有这些都是我所期望的。 Documents属性包含的文档比我预期的还多一个生成的文档。

如果我将此项目的引用添加到另一个项目,那么project.ProjectReferences有一个元素,正如我所期望的那样,但是project.MetadataReferences由于缺少系统类型而没有引用和数百个诊断错误。生成的文档不存在。

唯一的变化是添加项目参考。为什么所有元数据引用都会消失?

0 个答案:

没有答案