我有一个引用A.dll
的项目,当我构建时A.dll
未在本地复制,因为Copy local为false。我也没有使用A.dll
中的任何方法。
当我尝试在项目上运行FxCop时,它抱怨A.dll
不可用。
我可以通过任何方式避免在FxCop中进行此检查。
答案 0 :(得分:0)
如果您在此计算机上安装了Visual Studio,则还可以使用/p:RunCodeAnalysis=true
将Fxcop作为构建的一部分自动执行。您也可以在Visual Studio中为项目配置规则集。 MsBuild将知道A.dll
的位置,并将传递正确的引用。
至于为什么需要A.dll
,它有点依赖于你的代码,在二进制文件中显然有一个引用,所以有用法。它可以从该程序集的类或接口继承,使用Enumeration,也可以是另一个程序集使用的程序集,您可以直接调用这些程序集。
如果找不到引用的程序集,则无法抑制生成的警告。原因是许多规则(主要是数据流规则)依赖于这些其他程序集来检查是否对项目调用Dispose,是否将字符串传递给未经验证的SQL语句等。
如果不能分析正在执行的完整代码,这些类型的规则将无法找到所有问题。