현재 소스 제어 및 지속적인 통합을 위해 TFS 2008을 사용하고 있습니다.FXCop 경고를 기반으로 TFS 빌드를 실패하는 방법
FXCop을 사용하여 성능 및 보안 경고를 확인합니다. Architect 또는 수석 개발자는 스프린트가 끝나거나 배달 전에 FX Cop을 실행합니다.
경고가있는 경우 CI의 일부로 실행하고 빌드가 실패하면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
현재 소스 제어 및 지속적인 통합을 위해 TFS 2008을 사용하고 있습니다.FXCop 경고를 기반으로 TFS 빌드를 실패하는 방법
FXCop을 사용하여 성능 및 보안 경고를 확인합니다. Architect 또는 수석 개발자는 스프린트가 끝나거나 배달 전에 FX Cop을 실행합니다.
경고가있는 경우 CI의 일부로 실행하고 빌드가 실패하면이 작업을 수행하는 가장 좋은 방법은 무엇입니까?
나는 비슷한 것을 연구 해왔다. 이 질문이 약간 오래된 것이지만, 그것이 당신을 도울 것이라고 기대하고 있습니다.
필자는 FxCopCmd를 호출하는 빌드 후 이벤트를 작성하여 시작했습니다. 내 경우
, 나는
나는이에 대한 .fxcop 프로젝트 파일을 사용하여 내장 된 규칙 및 (.dll 인에서) 또한 일부 사용자 지정 규칙의 일부 코드의 단지 작은 부분 집합을, 원 - GUI를 통해 원하는 방식으로 구성한 다음 빌드 후 이벤트의 프로젝트 파일에 FxCopCmd를 지정합니다.대단히 효과적 이었지만 규칙 위반은 경고로만 나타났습니다. "경고를 오류로 처리"옵션이 여기에 적용되지 않는 것 같아서 다른 해결책을 찾아야했습니다.
궁극적으로 나를 위해 가장 잘 작동 한 것은 내가 우연히 발견 한 블로그 게시물을 기반으로했습니다.
두 개의 새로운 이벤트를 추가하도록 프로젝트 파일을 수정했습니다.
난의 FxCop하는 몇 가지 추가 파라미터와 재료가 있지만, 그 요지는 다음과1: <PropertyGroup>
2: <FxCopResults>$(ProjectDir)obj\$(Configuration)\FxCopResults.xml</FxCopResults>
3: <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 10.0\FxCopCmd.exe" /file:"$(TargetPath)" /console /out:"$(ProjectDir)obj\$(ConfigurationName)\FxCopResults.xml"</PostBuildEvent>
4: </PropertyGroup>
5: <Target Name="BeforeBuild">
6: <Delete Files="$(FxCopResults)" ContinueOnError="true" />
7: </Target>
8: <Target Name="AfterBuild">
9: <Error Text="One or more FxCop warnings occurred." Condition="Exists('$(FxCopResults)')" />
10: </Target>
일반적인 흐름이 같다
(BUILD 프로세스가 완료) 4 개 규칙 위반, 빌드 4 경고와 1 오류를 생성합니다.
이 정보가 도움이되기를 바랍니다.
연속 통합 환경에서 사용하기 위해 지원되는 code analysis features within Visual Studio을 살펴볼 수 있습니다.
MSBuild와 일반 프로젝트/솔루션을 통해 빌드한다고 가정하면 모든 빌드 (클라이언트와 서버 모두)의 일부로 실행되도록 FXCop을 구성 할 수 있습니다. 프로젝트 속성 대화 상자에서 "코드 분석"탭을보십시오. 이 기능은 디버그 및 릴리스 빌드에 대해 별도로 설정할 수 있으므로 개발자가 쉽게 사용할 수있는 경우 릴리스 빌드의 오류로 설정할 수 있습니다.
이러한 FXCop 설정을 사용하면 위반 사항이 빌드에서 경고 대신 오류로 표시되도록 정의 할 수 있습니다. 또한 체크 인이 유효하기 전에 정의 된 규칙 집합을 사용하여 코드 분석을 실행해야하는 TFS 정책을 활성화하여 개발자가 체크인 전에 위반 사항을 수정하도록하여 빨간색 빌드를 절약 할 수 있습니다.
이 모든 것들을 켜는 것이 좋습니다 -이 수준의 품질을 목표로한다면 (좋은 생각은 아닙니다) 미리 체크인 할 수있는만큼 좋은 일을하는 것이 좋습니다.
이 기능은 VS의 Premium 또는 Ultimate 버전에만 적용되지 않습니까? –
[... 코드 분석 ... Visual Studio Premium 또는 Visual Studio Ultimate] (http://msdn.microsoft.com/en-us/library/3z0aeatx%28v=vs.100%29.aspx) –