Visual studio FxCop正在构建(Visual Studio 2008专业版)

Visual studio FxCop正在构建(Visual Studio 2008专业版),visual-studio,msbuild,fxcop,Visual Studio,Msbuild,Fxcop,我刚刚学习了如何将StyleCop集成到VisualStudio中。现在,它运行每个构建,其错误显示为警告。好极了 现在,我只想对FxCop执行相同的操作,但即使安装MSBuild社区任务并将其添加到项目文件中: <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> <PropertyGroup> <PostBu

我刚刚学习了如何将StyleCop集成到VisualStudio中。现在,它运行每个构建,其错误显示为警告。好极了

现在,我只想对FxCop执行相同的操作,但即使安装MSBuild社区任务并将其添加到项目文件中:

 <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<PropertyGroup>
    <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 1.36\FxCopCmd.exe" /file:"$(TargetPath)" /console /searchgac</PostBuildEvent>
</PropertyGroup>


不行。我还需要做什么?

在csproj/vbproj文件中的
之前尝试将此项放在正确的位置:

 <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<PropertyGroup>
    <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 1.36\FxCopCmd.exe" /file:"$(TargetPath)" /console /searchgac</PostBuildEvent>
</PropertyGroup>

%25ProgramFiles%25\Microsoft FxCop 1.36\FxCopCmd.exe“/文件:“$(目标路径)”/console/searchgac

要在生成后执行Fxcop,请在后生成目标中使用MSBuildCommunityTasks的Fxcop任务:

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

<Target Name="AfterBuild">

  <FxCop TargetAssemblies="@(OutputAssemblies)"
         RuleLibraries="@(FxCopRuleAssemblies)" 
         DependencyDirectories="$(MSBuildCommunityTasksPath)"
         FailOnError="False"
         ApplyOutXsl="True"
         OutputXslFileName="C:\Program Files\Microsoft FxCop 1.32\Xml\FxCopReport.xsl"
         DirectOutputToConsole="true"/>

</Target>


输出将显示在控制台中。

工作正常!现在我明白了为什么人们通常不这么做。它比时尚警察慢。也许我应该在每次提交而不是每次生成时运行它。问题:它之所以有效是因为MSBuild社区任务,或者您的解决方案可以单独工作?为什么您的解决方案与AlexWalker的不同?他的回答也使用了MSBuildCommunityTasks?