我有很多项目,我创建了一个常见的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
答案 0 :(得分:1)
您应该执行以下操作之一:
如果您希望将分析器的输出保存到文件中,则应在两个任务中将BuildingInIDE
属性设置为false
,还应指定一个文件输出要保存到,例如OutputFilePath = "$(OutputDir)"/pvs.log
。
您可以通过将其打开为unparsed log
来从PVS-Studio IDE插件/独立版中查看此类日志。
如果您想从Visual Studio
和PVS-Studio
插件内部构建项目以立即将分析器结果连接到它的输出窗口,那么您应该同时设置{{1}将属性设置为BuildingInIDE
(或true
)并启用"$(BuildingInsideVisualStudio)"
模式,转到MSBuild
并将其设置为PVS-Studio -> Options -> Specific Analyzer Settings -> MSBuild Output Log Monitoring
。