将PVS-Studio集成到MSBuild文件中

时间:2014-07-24 15:40:34

标签: c++ c msbuild pvs-studio

我有很多项目,我创建了一个常见的MSBuild文件来运行。我试图将PVS Studio的静态分析集成到构建中,而不是第二次构建它。我关注了PVS网站上的一些文档,但我必须遗漏一些东西。 我这样说是因为当我构建PVS时似乎没有触发/调用。 有没有人有这方面的经验,可以帮我一个忙吗?

这是我的构建文件的PVS位。

 <UsingTask TaskName="ProgramVerificationSystems.PVSStudio.PVSStudio" 
    AssemblyFile="C:\Program Files (x86)\PVS-Studio\PVS-Studio-MSBuild.dll" />
    <Target Name="PVSStudioAnalysisBeforeCompile" BeforeTargets="ClCompile">
    <Exec Command="echo PVSStudio initiating now."/>
    <PVSStudio Condition="'%(ClCompile.ExcludedFromBuild)'!='true'" 
        Sources="@(ClCompile)" 
        BeforeClCompile="true" 
        BuildingInIDE="false" 
        TrackerLogDirectory="%(ClCompile.TrackerLogDirectory)" 
        PreprocessorPath="$(VCInstallDir)" 
        Platform="$(Platform)" 
        ProjectFullPath="$(MSBuildProjectFullPath)" 
        SolutionDir="$(SolutionDir)">
     <Output TaskParameter="SourcesAfterTlogParsing"    
        ItemName="CLCompileAfterTlogParsing" />
     </PVSStudio>
   </Target>
<Target Name="PVSStudioAnalysisAfterCompile" AfterTargets="ClCompile">
<PVSStudio Sources="@(CLCompileAfterTlogParsing)" 
    BeforeClCompile="false" 
    BuildingInIDE="$(BuildingInsideVisualStudio)" 
    PreprocessorPath="$(VCInstallDir)" 
    OutputFilePath   ="$(OutputDir)" 
    Platform="$(Platform)" 
    ProjectFullPath="$(MSBuildProjectFullPath)" 
    SolutionDir="$(SolutionDir)" />
<Exec Command="echo PVSStudio finished"/>

我相信你们都需要更多的信息来解决这个问题,所以让我知道我应该为你做些什么。

谢谢,

TBG

1 个答案:

答案 0 :(得分:1)

您应该执行以下操作之一:

  1. 如果您希望将分析器的输出保存到文件中,则应在两个任务中将BuildingInIDE属性设置为false,还应指定一个文件输出要保存到,例如OutputFilePath = "$(OutputDir)"/pvs.log。 您可以通过将其打开为unparsed log来从PVS-Studio IDE插件/独立版中查看此类日志。

  2. 如果您想从Visual StudioPVS-Studio插件内部构建项目以立即将分析器结果连接到它的输出窗口,那么您应该同时设置{{1}将属性设置为BuildingInIDE(或true)并启用"$(BuildingInsideVisualStudio)"模式,转到MSBuild并将其设置为PVS-Studio -> Options -> Specific Analyzer Settings -> MSBuild Output Log Monitoring