【问题标题】:FindReferencesAsync doesn't return references across projectsFindReferencesAsync 不返回跨项目的引用
【发布时间】:2019-02-11 11:08:51
【问题描述】:

我正在尝试使用FindReferencesAsync 查找类型符号的所有引用。它适用于 C# 项目中的引用;但是,不会出现跨项目引用。这是我正在使用的代码。

var model = compilation.GetSemanticModel(_sourceFile.GetSyntaxTree());
ISymbol classSymbol = model.GetDeclaredSymbol(typeDeclarationSyntax);
referencedSymbols.AddRange(SymbolFinder
                    .FindReferencesAsync(classSymbol, _solution)
                    .Result.ToList());

【问题讨论】:

  • 请明确一点,您的编译是否引用了包含使用类型的项目?
  • 加载的项目在 ProjectReferences 属性中显示项目引用。但是,编译诊断显示错误(找不到类型或命名空间“Lib”(您是否缺少 using 指令或程序集引用?)
  • 你是如何打开项目并创建编译的?您可能需要自己手动添加ProjectReferences。如果您看到编译错误,可能就是这种情况。

标签: c# roslyn roslyn-code-analysis


【解决方案1】:

我在这个问题上花费了相当长的时间。除其他外,我尝试添加元引用和项目引用,但没有任何效果。最后,我能够通过查看在创建项目实例时提供的诊断信息来解决它。一旦诊断中报告的所有关键问题都得到解决,我甚至可以在整个项目中看到一个符号的所有引用。

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多