Msbuild 禁止删除.codeanalysislog.xml和.LastCodeAnalysisUCcceed文件
是否有一种方法可以阻止.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
<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