Roslyn:在Ubuntu的已打开项目中没有文档

时间:2017-05-31 16:01:50

标签: c# ubuntu mono roslyn

我试图通过Roslyn与C#项目合作。我是这样做的:

solution = workspace.OpenSolutionAsync(solutionPath).Result;
foreach (var project in solution.Projects) {
    foreach (var document in project.Documents) {
        ...

在Windows 10上一切正常,但是在Ubuntu 16.10上我打开的每个项目都没有文档

project.HasDocuments == false

我拥有所有必需依赖项的最新版本(2.3.0-beta):Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.Common,Microsoft.CodeAnalysis.Workspaces 。常见的

Project .NET版本为4.6,Mono版本为5.0.1.1

当使用.NET 4.5及其旧版本的依赖项时,我遇到了空解决方案的问题(未检测到任何项目)。更新到4.6和新的依赖关系'版本,找到了项目,但没有找到文件。

如果不解决这个问题,还有什么方法,至少让Roslyn大声失败? 或者我想要的功能可能只是Windows?

P.S。我已经看到了一个相关的问题(Roslyn load project documents faililng),但是那里的解决方案并不起作用。

1 个答案:

答案 0 :(得分:0)

通常当MSBuild无法进行“设计时间构建”时会发生这种情况。找出项目的内容。这需要解决任务/目标/导入,这可能不适用于Mono。

尝试订阅WorkspaceFailed事件,看看您是否从MSBuild获得指示问题的诊断信息。