我刚刚开始使用Roslyn,因为我想开发一些静态分析宠物项目,专注于生成依赖图(输出将是.dot文件,使用Graphviz编译为.pdf)。
我可以看到以每个文件为基础分析代码的潜力,但我需要以下操作(或多或少):
solution.sln
文件,找到它引用的所有project.csproj
个文件; project.csproj
文件,找到它引用的所有sourcecode.cs
个文件; 具体来说,我的问题是:我可以使用Roslyn执行操作1,2和4,还是应该使用其他工具/技术?有什么建议吗?
P.S。我看到有一个VisualStudioWorkspace
,但我无法弄清楚我要做些什么才能使用它。
答案 0 :(得分:6)
是;这当然是可能的。
在VS本身中使用 VisualStudioWorkspace
;你应该只在VS插件中使用它来访问当前的解决方案。
要自行加载解决方案,请使用MSBuildWorkspace
。
然后,您将要为每个项目合并Compilation
s中的符号。