【问题标题】:FxCop on build (Visual Studio 2008 Professional)FxCop on build (Visual Studio 2008 Professional)
【发布时间】:2009-02-09 12:29:06
【问题描述】:

我刚刚学习了如何将 StyleCop 集成到 Visual Studio 中。现在它运行每个构建并且它的错误显示为警告。太好了!

现在我只想用 FxCop 做同样的事情,甚至安装 MSBuild 社区任务并添加到 proj 文件:

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

不会。我还需要做什么?

【问题讨论】:

    标签: visual-studio msbuild fxcop


    【解决方案1】:

    尝试在您的 csproj/vbproj 文件中将其放在 &lt;/Project&gt; 之前:

    <PropertyGroup>
        <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 1.36\FxCopCmd.exe" /file:"$(TargetPath)" /console /searchgac</PostBuildEvent>
    </PropertyGroup>
    

    【讨论】:

    • 成功了!现在我明白为什么人们通常不这样做了。它比风格警察慢。也许我应该在每次提交而不是每次构建时运行它。
    • 问题:由于 MSBuild 社区任务,它可以工作,还是您的解决方案可以单独工作?
    【解决方案2】:

    要在构建后执行 Fxcop,请使用 AfterBuild 目标中 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>
    

    输出将显示在控制台中。

    【讨论】:

    • 为什么您的解决方案与 AlexWalker 的不同?他的回复还使用了 MSBuildCommunityTasks?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多