7

Ich habe gerade ein Projekt von 2008 bis 2010 Beta 2 aktualisiert und StyleCop meldet jetzt SA1305 (Ungarische Notation) Warnungen auf Variablennamen mit dem Präfix 'ist'. "Is" ist definitiv in der Liste der erlaubten Präfixe.Warum beachtet StyleCop SA1305 nicht die Liste der zulässigen Präfixe in VS2010 (oder MSBuild)?

Ist dies ein bekanntes Problem? Hat jemand anderes dieses Problem überfahren? Der Code wurde definitiv ohne Warnungen in 2008 kompiliert.

Update: Es stellt sich heraus, dass dies wie erwartet in Visual Studio funktionieren kann, aber dann durch MSBuild fehlschlagen. Finden Sie die Antwort unten für warum.

Antwort

4

ich auf ein ähnliches Problem lief jetzt Beim Erstellen mit Msbuild vs auf einer Entwickler-Box. Es stellt sich heraus, dass der Standard Settings.StyleCop (C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.4), die tatsächlich installiert ist, eine Reihe von Werten enthält, die Sie müssen in Ihrer eigenen Datei kopieren, wenn entweder:

  • Sie sind nicht StyleCop auf der „anderen“ Installation (bauen) Maschine

oder

  • Sie "verschmelzen nicht mit irgendwelchen anderen Einstellungsdateien" aktiviert

Speziell - der StyleCop Settings Editor nimmt die ungarische Notation auf und schließt die andere Datei automatisch aus, unabhängig davon, was auf der Registerkarte "Einstellungsdateien" steht.

2

nur es wie folgt hinzu:

<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

Es ist tatsächlich in der Standardliste. – Jedidja

10

Sie können manuell hinzufügen "ist" Ausnahme von Settings.StyleCop:

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