예, 적어도 VS2010에 대해서는 가능하며 VS2012에 대해서도 동일하게 작동합니다.
나는 this blog post에 설명 된대로 세부 사항을 따랐으며, 저에게는 큰 도움이되었습니다.
빌드 된 첫 번째 프로젝트에 대해 구성된 룰 세트가 구성된 프로젝트와 관계없이 모든 프로젝트의 룰 세트가되는 VS2010에도 문제가있었습니다. 이것은 우리 단위 테스트 프로젝트의 규칙을 완화했기 때문에 나에게 적합하지 않았습니다. VS2012에서 고정되어 있다고 가정하지만,이 절차가 아니라면 그 해결 방법을 제공합니다.
업데이트
블로그는 더 이상 존재하지 않습니다. 나는 http://web.archive.org/web/20140531211137/http://kentb.blogspot.co.nz/2011_01_01_archive.html에 아래를 발견했다.
샘플 솔루션은 여전히 https://onedrive.live.com/?cid=328ba01b2a22de20&id=328BA01B2A22DE20%21178&authkey=!ALAeFtsfPqgdMCk
모든 신용에서 찾을 수 있습니다 비주얼 스튜디오없이 Kent Boogaart
코드 분석가는 2010
이 포스팅은 단계별 지침을 제공합니다 Visual Studio 2010의 코드 분석을 빌드에 통합하는 방법에 대해 설명합니다. 아직 작성하지 않았다면 달성 할 내용에 대한 첫 번째 게시물을 읽어보십시오. 원하는 경우 이전 게시물의 지침에 따라 Visual Studio 2008의 코드 분석을 통합 할 수 있습니다. Visual Studio 2010이 설치된 컴퓨터가 필요하지만 올바르게 설정된 후에는 프로젝트를 빌드하는 데 필요하지 않습니다. Visual Studio가 기본 위치에 설치되어 있다고 가정합니다. 필요에 따라 경로를 조정하십시오.
우리는 다음과 같은 디렉토리 구조로 시작하는 가정 :
Project
Lib
Src
1 단계 : 복사 코드 분석 공구 Lib\Code Analysis
에 C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
의
복사 전체 내용.
C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\CodeAnalysis
의 전체 내용을 Lib\Code Analysis
에 복사하십시오.
복사 다음 파일 Lib\Code Analysis
에 :
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualC\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualC.Dll
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.VisualStudio.CodeAnalysis.Sdk\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.CodeAnalysis.Sdk.dll
C:\Program Files\Microsoft Visual Studio 10.0\DIA SDK\bin\msdia100.dll
C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcp100.dll
C:\Program Files\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcr100.dll
2 단계 : 코드 분석 대상 파일 만들기
CodeAnalysis.targets
이라는 파일을 만들고 Src
디렉토리에 저장하십시오. 다음은이 파일의 내용을위한 시작점입니다. 당신은 당신의 요구에 필요한 조정할해야합니다
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!--
Inject our own target before the code analysis runs.
-->
<RunCodeAnalysisDependsOn>
ConfigureCodeAnalysis;
$(RunCodeAnalysisDependsOn);
</RunCodeAnalysisDependsOn>
<!--
Ensure code analysis is run
-->
<RunCodeAnalysis>True</RunCodeAnalysis>
<!--
Set this to false if you don't want all code analysis violations to be treated as errors.
-->
<CodeAnalysisTreatWarningsAsErrors>True</CodeAnalysisTreatWarningsAsErrors>
<!--
This should be set to resolve to the Lib directory, which must contain the code analysis tooling.
-->
<PathToLib>$(MSBuildProjectDirectory)\..\..\Lib\</PathToLib>
<!--
This should be set to resolve to the directory containing this targets file.
-->
<PathToTargets>$(MSBuildProjectDirectory)\..\</PathToTargets>
<!--
Setting these properties is required in order for the code analysis targets to execute correctly.
Without setting these, it will look for the tooling under default installation directories instead
-->
<CodeAnalysisTargets>$(PathToLib)\Code Analysis\Microsoft.CodeAnalysis.Targets</CodeAnalysisTargets>
<CodeAnalysisPath>$(PathToLib)\Code Analysis</CodeAnalysisPath>
<!--
Assign default code analysis rules
-->
<CodeAnalysisRuleSet>$(PathToTargets)CodeAnalysis.Default.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<UsingTask AssemblyFile="$(PathToLib)\MSBuildSdcTasks\Microsoft.Sdc.Tasks.dll" TaskName="StringComparison"/>
<Target Name="ConfigureCodeAnalysis">
<!--
Assume that any projects with ".Tests" in their names are test projects
-->
<StringComparison Comparison="Contains" Param1="$(AssemblyName)" Param2=".Tests">
<Output TaskParameter="Result" PropertyName="IsTestProject"/>
</StringComparison>
<!--
Assign different rules for test projects (more relaxed)
-->
<CreateProperty Condition="$(IsTestProject)" Value="$(PathToTargets)CodeAnalysis.Tests.ruleset">
<Output TaskParameter="Value" PropertyName="CodeAnalysisRuleSet"/>
</CreateProperty>
</Target>
</Project>
3 단계 : 규칙을 만들기
이 Src
디렉토리에 CodeAnalysis.Default.ruleset
및 CodeAnalysis.Tests.ruleset
라는 파일을 생성합니다 설정합니다. File/New/File/Code Analysis Rule Set
을 선택하여 Visual Studio 2010에서 이러한 파일을 만들 수 있습니다. 또는 다운로드 한 예제의 파일을 복사 할 수도 있습니다.
4 단계 :는, 관련 프로젝트 코드 분석이 필요한 모든 프로젝트에 대한
에 대한 코드 분석을 활성화 .csproj 파일을 열고
Microsoft.CSharp.targets
의 가져 오기 전에 다음을 삽입 :
<Import Project="..\CodeAnalysis.targets" />
참고 : Microsoft.CSharp.targets 가져 오기 전에 삽입하는 것이 매우 중요합니다.
5 단계 :,
가 활성화 된 규칙, 규칙 설정하는 조건을 변경하기 위해 CodeAnalysis.targets
, CodeAnalysis.Default.ruleset
및 CodeAnalysis.Tests.ruleset
파일을 조정할 수도 있습니다를 사용하는 등 필요한 조정할 등 위에서 언급 한 것처럼 VS2010을 사용하여 .ruleset
파일을 만들고 편집 할 수 있습니다.
코드 분석이 이제 프로젝트와 통합되었습니다. Visual Studio, 명령 줄 또는 빌드 서버에 관계없이 빌드하는 곳은 관련이 없습니다. 모든 경우 코드 분석이 프로젝트에 실행됩니다. 아래의 모든 작업을 보여주는 예제 솔루션을 다운로드 할 수 있습니다.
문제 해결이 CA0001 Phx.FatalError
을 얻을 경우, 당신은 가능성이 빌드 시스템에서 msdia100.dll
등록해야
: 빌드 경우
가
regsvr32 msdia100.dll
당신은 아마도, 너무, 빌드 스크립트에이 통합 수를 사용자에게 충분한 권한이 있습니다.