J'ai travaillé sur quelque chose de similaire. Même si cette question est un peu ancienne, j'espère que cela vous aidera.
J'ai commencé comme la plupart - en faisant un événement de post-construction qui appelle FxCopCmd.
Dans mon cas, je voulais juste un petit sous-ensemble du code, certaines des règles intégrées, ainsi que des règles personnalisées (dans un .dll)
J'ai utilisé un fichier de projet .fxcop pour cette - en configurant tout ce que je voulais via l'interface graphique, puis en pointant FxCopCmd sur le fichier projet dans l'événement post-build. Pour la plupart, cela a très bien fonctionné, mais les violations de règles ne sont apparues que comme des avertissements. L'option "Traiter les avertissements en tant qu'erreurs" ne semble pas s'appliquer à cela, j'ai donc dû trouver une solution différente. Ce qui a finalement fonctionné le mieux pour moi était basé sur un article de blog que je suis tombé sur. J'ai modifié le fichier de projet pour ajouter deux nouveaux événements.
J'ai quelques paramètres supplémentaires et des trucs pour FxCop, mais l'essentiel de celui-ci est:
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>
Le flux général est comme ceci:
- (CONSTRUIRE PROCESSUS EST ENFONCÉ)
- Avant le début d'une génération, les résultats FxCop précédents (s'ils existent) sont effacés.
- événement pré-construction est déclenché
- (BUILD COMMENCE)
- événement post-construction est déclenché (qui court FxCopCmd)
- Après la post-construction se termine, s'il y a des résultats FxCop, une erreur est élevé.
- (BUILD EST PAS TERMINÉE)
Maintenant, si l'analyse FxCop généré - par exemple - 4 violations des règles, votre construction générerait 4 avertissements et 1 erreur.
J'espère que cela aide.
Cela ne s'appliquerait-il pas uniquement aux éditions Premium ou Ultimate de VS? –
[... l'analyse de code ... à partir de Visual Studio Premium ou de Visual Studio Ultimate] (http://msdn.microsoft.com/fr-fr/library/3z0aeatx%28v=vs.100%29.aspx) –