2010-03-30 16 views
2

Ok, une autre question FxCop pour aujourd'hui.Désactivation globale des erreurs FxCop dans TeamCity

J'ai lu les arguments concernant la règle IdentifiersShouldBeCasedCorrectly, et si oui ou non il devrait être "XML" ou "Xml". Eh bien, je suis un gars "XML" et je veux rester comme ça. Par conséquent, je fais pas voulez FxCop pour me corriger tout le temps.

J'ai utilisé l'attribut SuppressMessage uniquement pour des cas spécifiques. J'ai également utilisé FxCop pour marquer une tonne d'erreurs et les ai copiées comme des instructions SuppressMessage de niveau "module" dans assemblyinfo.cs. Cela fonctionne plutôt bien.

Cependant, maintenant je veux vraiment désactiver globalement cette règle ennuyeuse IdentifiersShouldBeCasedCorrectly. J'utilise TeamCity 5.0.3, et n'utilise pas un fichier de projet FxCop (cependant, je pourrait le faire). J'espérais que je pourrais passer un paramètre à FxCopCmd pour lui dire d'ignorer cette erreur, mais ça ne ressemble pas à ça de la documentation.

Alors ... y a-t-il quelque chose que je puisse faire à part de créer un fichier de projet FxCop sur le serveur de construction TeamCity et de l'utiliser pour le coureur de build FxCop?

Répondre

0

Regardez dans le répertoire d'installation de FxCop (le mien est c:/program files/microsoft fxcop 1.36). Il devrait y avoir un fichier CustomDictionary.xml dans ce répertoire. Vous pouvez ajouter du XML à la section CasingExceptions à la fin de CustomDictionary.xml et l'enveloppe XML sera ignorée pour tous les éléments namespace et nom de fonction de tous les projets sur cette machine (sauf si CustomDictionary.xml est surchargé en ligne de commande, bien sûr).

Vous pouvez également copier CustomDictionary.xml dans le répertoire du projet et ajouter XML dans la section CasingExceptions de la copie du répertoire du projet. Je pense que ceci sera trouvé automatiquement, sans besoin d'un fichier de projet FxCop et ne sera utilisé que pour ce projet.

C'est ce que j'ai fait pour notre build TeamCity, mais j'avais besoin d'un fichier projet FxCop pour une autre raison, donc je ne me souviens pas (et je ne peux pas vérifier) ​​si CustomDictionary.xml sera automatiquement trouvé par FxCop.

Exemple:

<Acronyms> 
<CasingExceptions> 
    <Acronym>Pi</Acronym> 
    <Acronym>Na</Acronym> <!-- NaN --> 
    <Acronym>NESW</Acronym> <!-- North East South West --> 
    <Acronym>NWSE</Acronym> <!-- North West South East --> 
    <Acronym>XML</Acronym> <!-- XML --> 
</CasingExceptions> 

Il y a aussi un exemple un peu différent de mots à ignorer MSDN FxCop FAQ Hope this helps!

+0

J'ai utilisé le fichier FxCop customdictionary.xml strictement pour ajouter des mots qui ont été mal orthographiés par FxCop, comme "num" (quelque chose que j'aime utiliser dans mes noms de variables). Pouvez-vous s'il vous plaît modifier votre réponse et publier un exemple de ce que vous avez ajouté à votre fichier XML pour ignorer le boîtier? – Dave

+0

ah, je vois de quoi vous parlez ... Je n'avais pas remarqué cette section plus tôt. Mais au lieu d'ajouter tous les acronymes, je veux globalement désactiver l'erreur elle-même, parce que la façon dont je typecase mots est une question de style, et il n'y a pas de dire combien de plus je devrais ajouter au fil du temps. J'espérais que je pourrais exporter la suppression d'erreur de FxCop en tant que XML, puis le coller dans customdictionary.xml, mais ce que je trouve intéressant, c'est que je ne peux pas écraser le fichier. Je vais devoir voir si c'est un problème d'autorisations Win7. – Dave

+0

copier en XML à partir de FxCop dans customdictionary.xml ne fonctionnait pas ... ça valait le coup. :) – Dave