Msbuild 禁止删除.codeanalysislog.xml和.LastCodeAnalysisUCcceed文件

Msbuild 禁止删除.codeanalysislog.xml和.LastCodeAnalysisUCcceed文件,msbuild,fxcop,Msbuild,Fxcop,是否有一种方法可以阻止.codeanalysislog.xml和.LastCodeAnalysisUCcceed在生成时被删除到我的输出目录中?没关系,我在生成后添加了一个目标来删除这些文件 <Target Name="AfterBuild" AfterTargets="Build"> <ItemGroup> <FilesToDelete Include="\**\*.CodeAnalysisLog.xml" /> <FilesT

是否有一种方法可以阻止.codeanalysislog.xml和.LastCodeAnalysisUCcceed在生成时被删除到我的输出目录中?

没关系,我在生成后添加了一个目标来删除这些文件

<Target Name="AfterBuild" AfterTargets="Build">    
<ItemGroup>
    <FilesToDelete Include="\**\*.CodeAnalysisLog.xml" />
    <FilesToDelete Include="\**\*.lastcodeanalysissucceeded" />
</ItemGroup>


我同意,
bin
文件夹对于这些FxCop文件来说是个坏地方。但是,禁止生成这些文件,或在生成后无条件删除它们并不是最佳决策。首先,删除
.lastcodeanalysissucceeded
将导致代码分析重新运行,即使没有任何更改。其次,删除
.codelanalysislog.xml
几乎不可能调查分析错误和警告的详细信息。因此,您最好关闭项目的代码分析

相反,让我提出另一个解决方案。它解决了
bin
文件夹中那些讨厌的文件的问题,同时保留了FxCop的所有功能。解决办法就是把这些文件放到别的地方。最好的位置是
obj
文件夹,即
$(intermediateOutput路径)

将此部分粘贴到项目文件中在文件末尾的所有
之后

  <PropertyGroup>
    <CodeAnalysisLogFile>$(IntermediateOutputPath)$(TargetFileName).CodeAnalysisLog.xml</CodeAnalysisLogFile>
    <CodeAnalysisSucceededFile>$(IntermediateOutputPath)$(TargetFileName).lastcodeanalysissucceeded</CodeAnalysisSucceededFile>
  </PropertyGroup>

$(IntermediateOutputPath)$(TargetFileName).CodeAnalysisLog.xml
$(中间输出路径)$(目标文件名)。LastCodeAnalysisSuccessed