가이 같은 명령 행에 MSBUILD를 사용하여 내 솔루션 구축 :네이티브 코드 분석 로그에 대한 출력 경로를 설정하는 방법
msbuild %SOLUTION% /m /fl /flp:LogFile="%OUTPUTFILE%" /p:Configuration=%BUILDCONFIG% /p:RunCodeAnalysis=True
이 /p:RunCodeAnalysis=True
갖는은 (네이티브에 대한 코드 분석 결과를지지합니다 PREfast) 및 managed (FxCop) 코드가 있지만 문제는 네이티브 코드의 분석 결과 파일이 맨드 코드 결과와 마찬가지로 $(OutDir)
에 있지 않다는 것입니다. 대신 각 어셈블리 ($(IntDir)
)의 obj
폴더에 저장됩니다.
나는 표준 대상 파일 Microsoft.CodeAnalysis.Targets
의 경로를 추적하고
<MergedOutputCodeAnalysisFile>$(IntDir)vc.nativecodeanalysis.all.xml</MergedOutputCodeAnalysisFile>
<MergedOutputCodeAnalysisFile>$(OutDir)$(TargetName).nativecodeanalysis.TEST.xml</MergedOutputCodeAnalysisFile>
에 라인을 변경하고 일했다,하지만 난 변경하는 모든 개발자를 요청할 수 없습니다 그/그녀의 시스템 에서이 파일, 그래서 프로젝트 파일 안에 이것을 설정하는 방법이 필요합니다. 난 이미 방법을 다음과 같은 시도하지만 성공이 없었습니다 : 원하는 속성 값과 MSBUILD를 호출
<PropertyGroup>
<OutputCodeAnalysisFile>$(OutDir)$(TargetName).NativeCodeAnalysis.TEST.xml</OutputCodeAnalysisFile>
</PropertyGroup>
:
은 (루트 레벨에) 각 프로젝트 파일에 속성을 추가하기
msbuild %SOLUTION% /m /fl /flp:LogFile="%OUTPUTFILE%" /p:Configuration=%BUILDCONFIG% /p:RunCodeAnalysis=True /p:MergedOutputCodeAnalysisFile="$(OutDir)$(TargetName).nativecodeanalysis.TEST.xml"
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
후vcxproj
파일이 행을 추가하여 대상 분사 사용 :<PropertyGroup> <RunMergeNativeCodeAnalysisDependsOn> $(RunMergeNativeCodeAnalysisDependsOn); CustomOutputNativeCodeAnalysisFile </RunMergeNativeCodeAnalysisDependsOn> </PropertyGroup> <Target Name="CustomOutputNativeCodeAnalysisFile"> <PropertyGroup> <OutputCodeAnalysisFile>$(OutDir)$(TargetName).NativeCodeAnalysis.TEST.xml</OutputCodeAnalysisFile> </PropertyGroup> </Target>
이 사람이 어떻게 표준 코드 분석 대상을 건드리지 않고 문제를 해결하기 위해 알고 있나요?