C# 罗斯林的工作区

C# 罗斯林的工作区,c#,roslyn,roslyn-code-analysis,C#,Roslyn,Roslyn Code Analysis,Roslyn的不同工作区是什么?它们之间的区别是什么?我只知道MSBuildWorkspace和AdhocWorkspace。工作空间如何影响Roslyn分析?我已经读到MVC项目需要DnxWorkspace,但我还没有尝试过它们。Roslyn工作区是访问解决方案模型的公共点 工作区之间的区别主要在于解决方案模型是如何构建的,它是否是通过读取文件构建的,等等 MSBuildWorkspace从msbuild解决方案或项目文件为您构建解决方案模型 AdhocWorkspace要求您通过添加项目和文

Roslyn的不同工作区是什么?它们之间的区别是什么?我只知道
MSBuildWorkspace
AdhocWorkspace
。工作空间如何影响Roslyn分析?我已经读到MVC项目需要
DnxWorkspace
,但我还没有尝试过它们。

Roslyn工作区是访问解决方案模型的公共点

工作区之间的区别主要在于解决方案模型是如何构建的,它是否是通过读取文件构建的,等等

MSBuildWorkspace从msbuild解决方案或项目文件为您构建解决方案模型

AdhocWorkspace要求您通过添加项目和文档的API调用手动构建解决方案

DnxWorkspace通过读取早期的dotnet core project.json文件来构建解决方案模型


当Roslyn在Visual Studio中使用时,它使用的是从VS项目系统获取解决方案模型的VisualStudioWorkspace。

您知道这些都会如何影响MVC项目的分析吗?我读到MVC项目需要DnxWorkspace。有关于Dnxworkspace的想法吗?谢谢,是的。MVC项目需要DnxWorkspace进行分析。除非你说你到目前为止完成了什么,否则很难解释。首先,您需要下载一个nuget包<代码>Microsoft.CodeAnalysis.Workspace.Dnx。请明确您想要实现的目标。不太确定“我想要实现什么”是什么意思,但基本上我所做的是一个静态代码分析器,用于检测ASP.NET项目中的安全漏洞。它现在在WebForms类型的项目上运行良好,但在MVC项目上运行不好。我在代码中使用了很多符号API,因此在分析MVC项目时会得到很多空引用指针。那么,让Dnxworkspace能够分析MVC项目的区别是什么呢?谢谢@KimKangIn:
DnxWorkspace
用于.Net核心项目,无论类型如何。它知道如何加载它们的引用和其他属性。