2009-02-09 3 views
2

방금 ​​Visual Studio에 StyleCop을 통합하는 방법을 배웠습니다. 이제 모든 빌드가 실행되고 오류가 경고로 표시됩니다. Excelent!FxCop on build (Visual Studio 2008 Professional)

지금 나는 단지의 FxCop과 같은 일을하고 싶지만, 심지어의 MSBuild 커뮤니티 작업을 설치하고 PROJ 파일에 추가 :

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 

는하지 않습니다. 내가 뭘해야 해?

답변

2

당신의 csproj/vbproj 파일에 </Project> 전에이 권리를 넣어보십시오 :

<PropertyGroup> 
    <PostBuildEvent>"%25ProgramFiles%25\Microsoft FxCop 1.36\FxCopCmd.exe" /file:"$(TargetPath)" /console /searchgac</PostBuildEvent> 
</PropertyGroup> 
+0

효과가 있습니다. 이제 사람들이 대개 이렇게하지 않는 이유를 알게되었습니다. 스타일 경찰보다 느립니다. 어쩌면 각 빌드 대신 커밋 할 때마다 실행해야합니다. –

+0

질문 : MSBuild 커뮤니티 작업으로 인해 작동했거나 솔루션이 단독으로 작동 했습니까? –

+0

이 솔루션은 MSBuild 커뮤니티 작업없이 작동합니다 –

2

을 빌드 후의 FxCop을 실행하는 경우, AfterBuild 대상에서 MSBuildCommunityTasks의의 FxCop 작업을 사용

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/> 

<Target Name="AfterBuild"> 

    <FxCop TargetAssemblies="@(OutputAssemblies)" 
     RuleLibraries="@(FxCopRuleAssemblies)" 
     DependencyDirectories="$(MSBuildCommunityTasksPath)" 
     FailOnError="False" 
     ApplyOutXsl="True" 
     OutputXslFileName="C:\Program Files\Microsoft FxCop 1.32\Xml\FxCopReport.xsl" 
     DirectOutputToConsole="true"/> 

</Target> 

출력을 것이다 콘솔에 표시됩니다.

+0

귀하의 솔루션과 AlexWalker의 솔루션이 다른 이유는 무엇입니까? 그의 응답은 또한 MSBuildCommunityTasks를 사용합니까? –

+0

이 솔루션은 MSBuildCommunityTasks FxCop을 사용합니다. –