2

我有一个拥有相当大(> 150 个解决方案)代码库的客户。他们有一个他们的开发人员可以使用的已批准第三方程序集的列表,并且他们希望使用 Sonar 来帮助识别正在使用未在批准列表中的程序集的项目。

一个简单的例子:

  • 我的解决方案引用 foo.dll
  • Foo.dll 不在已批准的第 3 方程序集列表中
  • 当我运行声纳分析时,我的解决方案对 foo.dll 的使用被报告为违反规则

这似乎是一个相当简单的要求,但我在确定如何最好地在 Sonar 中实现它时遇到了一些困难。

4

2 回答 2

1

使用NDepend工具是即时的(免责声明:我是 NDepend 的开发者之一)。您只需要编写代码规则:

//<Name>Forbidden third-party assemblies</Name>
warnif count > 0 
from a in ThirdParty.Assemblies.WithNameNotIn(
          "Foo1", "Foo2", "Foo3")
select a

瞧:

NDepend 代码规则

于 2012-11-16T09:11:35.413 回答
0

我没有使用声纳的经验,您还没有指定您的代码库是什么语言,但是一个非常简单和基本的解决方案可能是解析项目文件(通常是 XML)并验证包含的引用。

于 2012-11-15T23:12:22.930 回答