我正在学习罗斯林并第一次尝试。我编写了一个小代码片段来加载解决方案并获取对工作区的引用。
IWorkspace workspace = Workspace.LoadSolution(solutionPath);
foreach (IProject project in workspace.CurrentSolution.Projects)
{
CommonCompilation objCompilation = project.GetCompilation();
}
return workspace;
但是我在第一行得到了例外。例外情况如下。
消息:预期全球热线。
堆栈跟踪:
在 Roslyn.Services.Host.SolutionFile.ParseGlobal(TextReader reader)
在Roslyn.Services.Host.SolutionFile.Parse(TextReader reader)
在 Roslyn.Services.Host.LoadedWorkspace.LoadSolution(SolutionId solutionId,String filePath)
在 Roslyn.Services.Host.LoadedWorkspace.OpenSolution(String fileName)
在Roslyn.Services.Host.LoadedWorkspace.LoadSolution(String solutionFileName,String配置,String平台,布尔值 enableFileTracking)
在 Roslyn.Services.Workspace.LoadSolution(String solutionFileName,String 配置,字符串平台,布尔值enableFileTracking)
在 Ros2.Program.GetWorkspace(String solutionPath)in c:\ users \ amnatu \ documents \ visual studio 2015 \ Projects \ Ros2 \ Ros2 \ Program.cs:第30行
我referred to this link显示了我遇到的同样问题。但是,删除EndProject
和Global
之间空格的解决方案在我的情况下并不适用,因为我的解决方案文件之间没有任何空格。
我在这里遗漏了什么吗?
有关如何解决这个问题的任何建议吗?
答案 0 :(得分:0)
对延迟回复表示道歉。 @JoshVarty的评论帮助我理解了这个问题。
我确实使用了过时的版本,不得不使用最新的Microsoft.CodeAnalysis
库。在我做了这些更改并相应地更新了所有类之后,一切都运行良好。
谢谢JoshVarty。!