.net core 如何在一组项目中查找未使用的代码?
在我的解决方案中,我希望以自动化的方式检测未使用的代码,作为CI的一部分。更具体地说,我想分析一组项目(例如.net core 如何在一组项目中查找未使用的代码?,.net-core,static-analysis,fxcop,roslyn-code-analysis,.net Core,Static Analysis,Fxcop,Roslyn Code Analysis,在我的解决方案中,我希望以自动化的方式检测未使用的代码,作为CI的一部分。更具体地说,我想分析一组项目(例如/src下的项目,而不是/test),然后在该范围内决定使用什么和不使用什么。例如:如果同一组中的引用项目均未使用较低级别项目中的public方法,则应将其标识为未使用(有些工具没有检测到这一点,因为public成员也可能在解决方案之外使用,但我对此不感兴趣,因为我正在编写产品,而不是要使用的库) 几年前,我使用FxCop建立了一个包含相关项目的FxCop项目,并对这些项目进行了分析,从而
/src
下的项目,而不是/test
),然后在该范围内决定使用什么和不使用什么。例如:如果同一组中的引用项目均未使用较低级别项目中的public
方法,则应将其标识为未使用(有些工具没有检测到这一点,因为public
成员也可能在解决方案之外使用,但我对此不感兴趣,因为我正在编写产品,而不是要使用的库)
几年前,我使用FxCop建立了一个包含相关项目的FxCop项目,并对这些项目进行了分析,从而实现了这一点
今天,在.NET核心世界中,Roslyn分析器似乎是一个不错的选择(我在这里可能错了,请告诉我是否有更好的工作替代方案)但我不知道如何设置一个跨多个项目的规则集,以及分析器是否能够检测到所描述的未使用的代码.您可以为此使用默认的独立规则集,该规则集包含要检测的规则,以及 该工具可以分析任何.NET核心或.NET框架代码 一个独立项目的范围可以产生一个VS解决方案的几个或所有VS项目,甚至几个VS解决方案 >我想分析一组项目(例如,在/src下但不是/test下的项目),然后在该范围内决定使用什么和不使用什么 因此,您可以轻松编辑或复制默认规则以强制执行某些限制,如:
from t in JustMyCode.Types
.Where(t1 => t1.ParentNamespace.FullNameLike("*YourRegexPattern*"))
where t.NbTypesUsingMe == 0 && canTypeBeConsideredAsDeadProc(t)
select t
...
免责声明:我为NDepend工作如果您可以将代码与SonarQube集成,则可以通过代码分析度量给出未使用的代码