在 DiagnosticAnalyzer 中获取项目引用的程序集
Getting assemblies referenced by project in DiagnosticAnalyzer
我正在编写代码分析,它应该检查我们的库是否被正确使用。为此,我需要知道项目(=分析文档的父项目)引用了哪些程序集。在 CodeRefactoringProviders 中是可能的,因为它的上下文包含文档 属性。从文档中我可以找到项目及其参考资料。
但我不知道如何从 CodeAnalysis 上下文中获取信息(SyntaxNodeAnalysisContext,...)可能吗?
如果您注册 CompilationStarted,您可以获得一个 Compilation 对象,并且从该编译中有一个 References 属性。如果您需要文件路径,您可以将它们转换为 PortableExecutableReference
,或者如果您需要断言关于它们的其他内容,您可以获取符号。
我正在编写代码分析,它应该检查我们的库是否被正确使用。为此,我需要知道项目(=分析文档的父项目)引用了哪些程序集。在 CodeRefactoringProviders 中是可能的,因为它的上下文包含文档 属性。从文档中我可以找到项目及其参考资料。
但我不知道如何从 CodeAnalysis 上下文中获取信息(SyntaxNodeAnalysisContext,...)可能吗?
如果您注册 CompilationStarted,您可以获得一个 Compilation 对象,并且从该编译中有一个 References 属性。如果您需要文件路径,您可以将它们转换为 PortableExecutableReference
,或者如果您需要断言关于它们的其他内容,您可以获取符号。