2010-02-24 3 views
3

J'ai installé la règle StyleCop CheckIn (à partir de here) et cela fonctionne très bien. Cependant, j'ai écrit quelques règles personnalisées que je veux appliquer dans le cadre de la politique CheckIn (Visual Studio 2008, Team Explorer 2008, TFS 2005).Appliquer des règles de stylecop personnalisées pour une politique d'archivage sur TFS

Les règles personnalisées s'affichent correctement dans le fichier de paramètres lorsque je clique avec le bouton droit sur un projet et que je clique sur "Paramètres StyleCop". Toutefois, lorsque j'ajoute ma politique CheckIn et que j'essaie d'importer le même fichier settings.StyleCop, mes règles personnalisées n'apparaissent pas dans la fenêtre de l'éditeur.

Un autre problème, probablement lié, est que mes règles personnalisées apparaissent dans l'éditeur de paramètres StyleCop lorsque j'ouvre l'éditeur à partir de Visual Studio. Toutefois, si j'ouvre l'éditeur en double-cliquant sur un fichier de paramètres depuis l'explorateur Windows, mes règles ne sont pas visibles. Maintenant, quelqu'un peut-il me dire s'il est possible d'avoir des règles personnalisées dans une politique checkIn, et si oui, comment les faire apparaître dans la fenêtre de l'éditeur de paramètres StyleCop lors de l'ajout d'une politique checkIn.

Merci,

Neil

Répondre

3

Oui, il est certainement possible!

Il peut être un peu difficile de tout faire fonctionner correctement, mais sachant quelques choses clés devrait aider beaucoup.

La première étape est d'avoir à travailler StyleCop correctement sur la machine de développement avec des règles personnalisées:
1) StyleCop doit être installé sur la machine de développeur
2) Les règles personnalisées doivent être installés dans le même répertoire que StyleCop (ou, facultativement, dans un répertoire enfant). S'ils sont installés ailleurs, il est peu probable qu'ils fonctionnent correctement s'ils fonctionnent.
3) Les fichiers Settings.StyleCop de ce répertoire d'installation, le répertoire contenant le projet analysé et tous les répertoires au-dessus de celui-ci doivent être combinés pour activer vos règles personnalisées. Celui-ci est mieux vérifié en double-cliquant sur le fichier Settings.StyleCop dans le répertoire du projet et en vérifiant que vos règles sont activées dans l'éditeur.

Le point suivant est encore plus délicat, le StyleCop fonctionnant correctement sur la machine de construction.
Il s'agit à peu près des mêmes trois points, mais sur la machine de génération qui exécutera StyleCop pour la politique d'archivage. La machine de construction doit donc avoir installé StyleCop, les règles personnalisées installées et tous les bons fichiers Settings.StyleCop pour créer les mêmes paramètres de règle StyleCop sur la machine de construction que sur l'ordinateur du développeur. Il est plus facile de rompre en ne réalisant pas que StyleCop doit être installé sur la machine de construction. Même si StyleCop est installé, StyleCop peut fonctionner via l'intégration VS (comme vous le savez probablement) ou StyleCop via MSBuild integration (ce qui est moins courant et généralement moins bien compris). L'ordinateur de build est souvent configuré pour utiliser l'intégration MSBuild, ce qui signifie que les règles personnalisées doivent être installées dans le répertoire% Program Files% \ MSBuild \ Microsoft \ StyleCop \ v4.3 au lieu du répertoire% Program Files% \ StyleCop pourrait être attendu. En outre, si vous avez modifié le fichier Settings.StyleCop de base dans le répertoire% Program Files% \ StyleCop, vous devrez copier ce fichier dans le répertoire% Program Files% \ MSBuild \ Microsoft \ StyleCop \ v4.3 dans afin d'obtenir le même effet sur la machine de construction. Notez que faire un copier/coller avec un fichier Settings.StyleCop fonctionnant à partir d'une machine de développement est le meilleur moyen de s'assurer que la machine de construction a les paramètres corrects. StyleCop est extrêmement pointilleux sur ces fichiers XML, et la moindre faute de frappe peut conduire à un comportement bizarre qui prendra des jours à déboguer. Ne pas éditer à la main. Tu étais prévenu.8)

Donc, il y a certainement beaucoup de façons de ne pas le faire exactement, et vous allez voir l'étrangeté comme vous l'avez décrit jusqu'à ce que vous l'obteniez là. Heureusement, en gardant à l'esprit les trois points que j'ai énumérés et la différence entre "StyleCop sur la machine de construction" et "StyleCop sur une machine de développement", il devrait être possible de tout faire fonctionner sans heurt par la suite. Eh bien, ça a toujours fonctionné pour moi au moins.

Bonne chance!

Questions connexes