项目中引用的程序集名称,但相同的版本不可用

时间:2015-06-26 14:31:32

标签: code-analysis fxcop

我有一个引用A.dll的项目,当我构建时A.dll未在本地复制,因为Copy local为false。我也没有使用A.dll中的任何方法。

当我尝试在项目上运行FxCop时,它抱怨A.dll不可用。

我可以通过任何方式避免在FxCop中进行此检查。

1 个答案:

答案 0 :(得分:0)

如果您在此计算机上安装了Visual Studio,则还可以使用/p:RunCodeAnalysis=true将Fxcop作为构建的一部分自动执行。您也可以在Visual Studio中为项目配置规则集。 MsBuild将知道A.dll的位置,并将传递正确的引用。

至于为什么需要A.dll,它有点依赖于你的代码,在二进制文件中显然有一个引用,所以有用法。它可以从该程序集的类或接口继承,使用Enumeration,也可以是另一个程序集使用的程序集,您可以直接调用这些程序集。

如果找不到引用的程序集,则无法抑制生成的警告。原因是许多规则(主要是数据流规则)依赖于这些其他程序集来检查是否对项目调用Dispose,是否将字符串传递给未经验证的SQL语句等。

如果不能分析正在执行的完整代码,这些类型的规则将无法找到所有问题。