Question

Quelqu'un at-il une expérience de l'introduction FxCop au code existant? Nous aimerions avoir notre build échouer si quelqu'un introduit un code qui viole les règles. Mais pour l'instant, cela est impossible, car le code existant a plus de 9000 violations.

La seule façon de supprimer les erreurs que je connaisse est à travers l'attribut SuppressMessage, mais qui ne fonctionne que sur les méthodes et la GeneratedCodeAttribute. Ce dernier pourrait être utilisé pour les classes et les espaces de noms (si je me souviens bien), mais ne doit pas être utilisé pour le code non généré (voir ).

En ce moment, nous prenons un peu de temps chaque jour pour éliminer les violations, mais de nouvelles continuent à être introduites, parce que notre construction ne manquera pas.

Toutes les idées?

Était-ce utile?

La solution

Je suis dans une situation similaire. Je commencé à utiliser FxCop sur un projet existant depuis un certain temps, et avait assez peu d'erreurs au début. Ce que je faisais était d'éteindre toutes les règles, puis allumez un groupe à la fois, la résolution des erreurs que je suis.

Les groupes de sécurité et de performance sont un bon endroit pour commencer - ils me ont aidé à trouver des problèmes que je ne connaissais pas avant. Certaines règles sont subjectives et peuvent ne pas s'appliquer à votre projet, le cas échéant. Par exemple, si l'internationalisation est pas un problème, laissez alors ce groupe est désactivé. S'il y a des règles spécifiques qui ne vous concernent pas, comme les règles de nommage, puis les désactiver.

Si vous parvenez à éliminer un ensemble d'erreurs pour une certaine règle, vous pouvez définir la construction à l'échec si que les règles est violée à l'avenir. Donc, pas de nouvelles erreurs se glisseront dans.

Si c'est un projet d'une certaine taille, il suffit d'aller une règle à un moment, l'examen pertinence / importance de la règle, et soit corriger les erreurs ou tourner la règle hors si elle ne s'applique pas.

Autres conseils

Commencez par vous demander ceci: Êtes-vous prêt et capable de changer le code existant pour se conformer aux règles FxCop? Ou de le mettre différemment? Est-ce la meilleure façon de passer votre temps

Si vous êtes prêt à passer le temps et l'effort, commencez par ramasser la petite poignée de règles que vous trouverez le plus important pour la qualité globale et mettre en œuvre les. Si cela est utile, vous pouvez ajouter quelques règles, fixer le code et ainsi de suite.

Dans mon expérience, il n'y a pas l'approche big bang pour la mise en œuvre des règles FxCop et autres. La seule façon réaliste consiste à prendre des petits morceaux à la fois.

Vous pouvez ajouter des exceptions pour les vieilles violations dans un projet FxCop. De cette façon, vous ne serez pas besoin d'ajouter des attributs à votre code existant, et vous obtiendrez des avertissements sur toutes les nouvelles violations.

Pour ce faire, créez un projet dans l'interface graphique FxCop, analyse avec vos règles exécuter, puis dans les résultats voir violation sélection que vous voulez ignorer pour l'instant. Faites un clic droit et choisissez « Exclure ». avertissements sélectionnés se déplaceront à l'onglet « exclus du projet ». Lorsque vous êtes prêt à revenir et les corriger, sélectionnez et cliquez sur « Marquer comme actif ».

Ces exclusions sont stockées dans le fichier .FxCop.

Pourtant, je vous recommande d'introduire des règles progressivement, pour lisser la courbe d'apprentissage pour tout le monde.

Qu'en est-il l'approche suivante:

  1. Exécuter FXCop toutes les règles sur qui sont pertinentes pour votre projet
  2. Enregistrer les résultats sous une base de référence
  3. Développer un nouveau code
  4. Exécuter FxCop
  5. Supprimer tous les résultats de la ligne de base

cela se traduira sur les contrôles de FxCop sur votre nouveau code ....

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top