2009-12-01 12 views
7

Je viens de mettre à jour un projet de 2008 à 2010 Beta 2 et StyleCop signale maintenant les avertissements SA1305 (notation hongroise) sur les noms de variables avec le préfixe 'is'. 'Est' est définitivement dans la liste des préfixes autorisés.Pourquoi StyleCop SA1305 ne respecte pas la liste des préfixes autorisés dans VS2010 (ou MSBuild)?

Est-ce un problème connu? Est-ce que quelqu'un d'autre a rencontré ce problème? Le code a été définitivement compiler sans aucun avertissement en 2008.

Mise à jour: Il s'avère que cela peut fonctionner comme prévu dans Visual Studio, mais échoue ensuite par MSBuild. Voir la réponse ci-dessous pour pourquoi.

Répondre

4

je suis tombé sur un problème similaire maintenant lors de la construction avec msbuild vs sur une boîte de développeur. Il se trouve que le Settings.StyleCop par défaut (C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.4) qui est installé contient en fait un tas de valeurs que vous devrez dupliquer dans votre propre fichier si:

  • vous n'installez pas StyleCop sur les « autres » (construire) Machine

ou

  • vous avez "ne se confond pas avec d'autres fichiers de paramètres" activé

Spécifiquement - l'éditeur de paramètres StyleCop ramasse la notation hongroise exclut du fichier autre automatiquement, indépendamment de ce que dit l'onglet "Paramètres Fichiers".

2

simplement l'ajouter comme ceci:

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules"> 
    <AnalyzerSettings> 
    <CollectionProperty Name="Hungarian"> 
     <Value>is</Value> 
    </CollectionProperty> 
    </AnalyzerSettings> 
</Analyzer> 

http://www.thewayithink.co.uk/stylecop/sa1305.htm

+0

C'est dans la liste par défaut, en fait. – Jedidja

10

Vous pouvez ajouter manuellement "est" exception à Settings.StyleCop:

<Analyzers>  
    <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules"> 
    <AnalyzerSettings> 
     <CollectionProperty Name="Hungarian"> 
     <Value>is</Value> 
     </CollectionProperty> 
    </AnalyzerSettings> 
    </Analyzer> 
</Analyzers>