如何修复FxCop错误代码512?

Nic*_* W. 10 c# fxcop visual-studio-2010

在重构时,在一些程序集周围移动等等.我在Visual Studio中编译了一个解决方案并找回了一条错误消息:"FxCop退出时出现错误代码512".除了这个错误之外,构建似乎很好.

有谁知道这实际上意味着什么?我可以从哪里开始寻找解决方法?将FailOnError设置为false不是我想要关闭的路径.

Joh*_*ach 6

其他答案都在正确的轨道上,但错过了一小部分.

  • 抑制是一个选项,但您可能隐藏有关重要dll的错误,这不是一件好事.
  • 随机依赖目录容易出错.
  • Xml报告是要查看的地方,但FxCop MSBuild任务不会显示它放在哪里:(

为了从命令行运行FxCop,我必须执行以下操作:

FxCopCmd.exe /f:<Assembly.dll> /o:<OutputFileName> /verbose
Run Code Online (Sandbox Code Playgroud)

FxCopCmd是MSBuild Task使用的.如果组件丢失,它将返回错误代码512,即使组件不需要运行它也是如此.请参阅以下FxCop消息:

无法找到间接引用的程序集"Newtonsoft.Json,Version = 4.0.2.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed".分析不需要此装配,但分析结果可能不完整.此程序集由以下引用:Removed.dll.

添加对该dll的引用,然后错误代码消失.


mag*_*tte 5

我找到了解决方案.这是因为我引用了一个更高版本的程序集,并且FxCop正在抱怨它,警告CA0060进一步下降.解决方案是编辑FxCopCmd.exe.config文件并进行更改

<add key="AssemblyReferenceResolveMode" value="StrongName" />
Run Code Online (Sandbox Code Playgroud)

<add key="AssemblyReferenceResolveMode" value="StrongNameIgnoringVersion" />
Run Code Online (Sandbox Code Playgroud)


Chr*_*Wue 1

根据MSDN,这意味着它无法引用某些程序集。这个人建议用(我引用自他的博客)来覆盖它:

The following can be placed directly into the Post-build event field in your project's properties.
<YOUR FXCOP COMMAND>
IF 512 == %ERRORLEVEL% (
    echo postbuildevent:fxcop warning FXCOP:FxCopCode analysis was unable to complete.
    SET ERRORLEVEL = 0
) 
Run Code Online (Sandbox Code Playgroud)