2015-07-23 15 views
20

Ich verwende StyleCop Version: 4.7.49.0interpolieren Zeichenfolge C# 6.0 und StyleCop

Hat jemand die neueste interpolieren String-Funktionalität in C# 6.0

Beispiel

var totalUnits = GetUnitsGetTotalIssuedShares(myId); 
var testString = $"Test Units :{totalUnits}, have been shipped."; 

verwendet Wenn ich baue ich erhalte der stylecop error SA0102 - weil stylecop die Datei nicht parsen kann. Es scheint nicht, dass es eine neue Version von stylecop gibt, die 6.0 noch verarbeiten kann?

Fehler: SA0102: Ein Syntaxfehler wurde

Gibt es trotzdem, um diesen Fehler in der Datei entdeckt?

+0

Stylecop ist nicht Teil von Visual Studio und die neueste Version ist 1 Jahr alt.Man müßte es auf eine neuere Version aktualisieren, sobald sie verfügbar sind –

+0

nur gefragt, ob es eine Möglichkeit gäbe, diese SA0102 zu unterdrücken – MicroMan

+3

Versuchen Sie, die Roslyn-basierte Implementierung von StyleCop Regeln: https://github.com/DotNetAnalyzers/StyleCopAnalyzers –

Antwort

10

SA0102 ist ein internal stylecop error so kann nicht über eine Einstellungsdatei unterdrückt oder ignoriert werden. von

<Compile Include="<filename>.cs"> 
    <ExcludeFromStyleCop>True</ExcludeFromStyleCop> 
</Compile> 

Sie können den gleichen Effekt mit der rechten Maustaste auf die betroffene Datei und wählen Sie „auszuschließen: von der Suche nach den Dateinamen und das Ändern der Abschnitt dazu in der csproj

Sie eine Datei aus StyleCop unterdrücken kann Style-Cop ", wenn das StyleCop-Plugin installiert ist. Es braucht Zeit 4.7.50 alpha für Visual Studio 2015.


Die modernere Art und Weise, dies zu tun sein, ist die Verwendung des Analyzers Features von Visual Studio 2015 mit StyleCop.Analyzers zu machen.

enter image description here

Umzug in Stylecop.Analyzers, dies würde sie in die Regeln in der entsprechenden * .RULESET Datei (an gleicher Stelle wie CodeAnalysis Regeln)

enter image description here

hinzufügen und Sie können sie laufen über

enter image description here

, die die gleiche ist Effekt als Rechtsklick Run StyleCop:

I.e. Geben:

enter image description here

Diese bessere Unterstützung für C# 6 haben, wie StyleCop 4.7.50, die 2015 von Visual Studio unterstützt, in Alpha ist und noch C# 6.

+1

Ich bin mir nicht sicher, dass dies eine großartige Lösung zum Deaktivieren der Stilanalyse pro Datei ist, die 6.0-Funktionen verwendet. Leider ist diese Version von StylCop (die letzte Version) einfach nicht kompatibel mit C# 6.0, also müssen Sie sie entweder ausschalten oder hoffentlich könnte jemand einen Patch aktualisieren und verteilen. – ChrisCW

+1

Ähm ... Entschuldigung? Vielleicht wäre das [Stil-Cop-Projekt] (http://stylecop.codeplex.com/) ein besseres Ventil für deine Frustrationen als ich. – NikolaiDante

+4

Datei ignorieren, um eine Warnung zu unterdrücken? das ist nicht gut! – DAG

1

StyleCop sollte nicht sein unterstützen Lage C# 6 jetzt zu handhaben:

Änderungen Beta 4.7.51: hinzugefügt initial (und ungetestet) Unterstützung für C# 6.0 Syntax

So mit stabilen Build 4.7.54 oder später sollten Sie diese nicht mehr auftreten: http://stylecop.codeplex.com/releases/view/621306

+4

Nein, anscheinend nicht, ich habe gerade ein Upgrade auf 4.7.54 durchgeführt und habe immer noch das gleiche Problem. :(Aber nur, wenn ich kompliziert $ @ String Einschübe verwenden Vor allem:... Wenn Sie Ausdrücke mit Klammern in den Klammern enthalten, keine Variablen – Efrain

+0

Scheint, wie sie einige Grenzfälle übersehen Sie sollten ein Problem mit einigen konkreten Beispielen öffnen zu lassen, sie wissen (http://stylecop.codeplex.com/workitem/list/basic). – Hinek

+0

Ich habe 4.7.58.3 und habe immer noch ein Problem mit String-Interpolation + Literal, zB 'string x = $ @" {var1} ist keine Zahl, {var2} ist ";' – ps2goat