He estado trabajando en algo similar. Aunque esta pregunta es un poco vieja, espero que te ayude.
Comencé como la mayoría, realizando un evento de creación posterior que llama a FxCopCmd.
En mi caso, quería sólo un pequeño subconjunto del código, algunas de las reglas incorporadas, y también algunas reglas personalizadas (en un archivo .dll)
que utiliza un archivo de proyecto para este .fxcop - configurándolo todo tal como yo quería a través de la GUI y luego apuntando FxCopCmd al archivo del proyecto en el evento posterior a la construcción.
En su mayor parte, funcionó de maravilla, pero las infracciones de reglas surgieron solo como advertencias. La opción "Tratar advertencias como errores" no parece aplicarse a esto, así que tuve que encontrar una solución diferente.
Lo que finalmente funcionó mejor para mí se basó en una publicación de blog que encontré.
Modifiqué el archivo de proyecto para agregar dos eventos nuevos.
que tienen unos parámetros extra y cosas para FxCop, pero el quid de la cuestión es:
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>
El flujo general es la siguiente:
- (Proceso de Construcción se dispara)
- Antes de que se inicie una compilación, los resultados de FxCop anteriores (si existen) se eliminan.
- Pre-Construcción El evento se activa
- (BUILD COMIENZA)
- posterior a la generación de eventos se activa (que se ejecuta FxCopCmd)
- después de que finalice posterior a la generación, si hay resultados FxCop, un error es elevado.
- (proceso de construcción ES COMPLETA)
Ahora, si el análisis FxCop genera - por ejemplo - 4 violaciónes regla, su construcción generaría 4 advertencias y 1 error.
Espero que esto ayude.
¿No sería esto solo aplicable a las ediciones Premium o Ultimate de VS? –
[... análisis de código ... de Visual Studio Premium o Visual Studio Ultimate] (http://msdn.microsoft.com/en-us/library/3z0aeatx%28v=vs.100%29.aspx) –