Roslyn:在Ubuntu上打开的项目中没有任何文档
问题描述:
我正在尝试通过Roslyn与C#项目一起工作。我不喜欢这样写道:Roslyn:在Ubuntu上打开的项目中没有任何文档
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-β)所有必需的依赖关系:Microsoft.CodeAnalysis.Analyzers,Microsoft.CodeAnalysis.CSharp,Microsoft.CodeAnalysis.CSharp.Workspaces,Microsoft.CodeAnalysis.Common,Microsoft.CodeAnalysis.Workspaces.Common
Project .NET版本是4.6,Mono版本是5.0.1.1
当使用.NET 4.5和更旧版本的依赖关系时,我遇到了空解决方案的问题(未检测到任何项目)。在更新到4.6和新的依赖关系的版本后,项目被找到,但没有文件。
有没有什么办法可以解决问题,至少让Roslyn失败呢? 或者,也许我想要的功能是以某种方式Windows?
P.S.我见过一个相关的问题(Roslyn load project documents faililng),但是解决方案不起作用。
答
通常情况下,当MSBuild无法执行“设计时间构建”来查找项目内容时会发生这种情况。这需要解决任务/目标/导入,这可能无法在Mono上运行。
尝试订阅WorkspaceFailed
事件并查看是否从MSBuild获取了指示问题的诊断信息。