2017-01-17 4 views
3

Wir versuchen SonarLint mit VS2015 Enterprise und haben ein irritierendes Problem, das ein Aushängeschild sein könnte, wenn wir es nicht lösen. Core i5 Prozessor, 8GB Speicher, große SSD, Windows 7 Pro:Wie Sie verhindern können, dass SonarLint-Warnungen immer wieder auf dem VS-Fehlerbildschirm angezeigt werden

Wir haben Massen von älteren Warnungen des gleichen Warncodes (zB S1444). Ich kann mit dem vorhandenen Code leben, aber ich möchte ihn für die zukünftige Arbeit abfangen, daher möchte ich die bestehenden Warnungen unterdrücken, aber ohne unordentliche Pragmas im Code. Also, ich multi-select sie alle in der Fehlerliste Bildschirm und RT-Klick, klicken Sie dann auf In Suppression File. Eine GlobalSuppressions-Datei wird in den entsprechenden Projekten erstellt und aktualisiert.

Die Warnungen werden jedoch weiterhin angezeigt. Ich säubere und baue die Lösung neu auf und die 'unterdrückten' Warnungen werden weiterhin angezeigt, immer noch mit einem Unterdrückungszustand von 'Aktiv' (was ich vermute 'nicht unterdrückt').

Dies bedeutet, dass es fast unmöglich ist, alte Warnungen zu eliminieren, so dass neue deutlich sichtbar sind, was der eigentliche Sinn der Übung ist.

Ist das ein Fehler oder fehlt mir etwas?

Auch ich stelle fest, dass manchmal das RTK-Kontextmenü Suppress-> enthält und andere Male nicht. Wie funktioniert das?

+0

Kennen Sie den [Verbundenen Modus] (http://www.sonarlint.org/visualstudio/index.html#Connected)? Im verbundenen Modus können Sie die Regel aus dem Qualitätsprofil entfernen. Auf diese Weise können Sie Ihre Standards innerhalb Ihres Teams synchronisieren. – janos

+0

Wir möchten den SonarQube-Server-Ansatz nicht verwenden - zu komplex für unsere Anforderungen. Alles was wir wollen ist, dass unterdrückte Warnungen von der Registerkarte "Warnungen" auf dem Bildschirm "VS-Fehlerliste" verschwinden. Wenn alle Warnungen behandelt oder unterdrückt wurden, haben wir einen "sauberen" Bildschirm und alle neuen Warnungen sind offensichtlich. Ist das nicht möglich? –

Antwort

2

Ich kann das Problem, mit dem Sie konfrontiert sind, nicht reproduzieren. Ich habe eine ConsoleApplication (C#) erstellt und den Standardcode verwendet. Ich habe dann alle Probleme ausgewählt, mit der rechten Maustaste und Unterdrücken in Suppression File. Ich habe versucht, VS neu aufzubauen, zu säubern, neu zu starten und Warnungen werden nicht mehr angezeigt.

Program.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace ConsoleApplication14 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     } 
    } 
} 

GlobalSuppression.cs

// This file is used by Code Analysis to maintain SuppressMessage 
// attributes that are applied to this project. 
// Project-level suppressions either have no target or are given 
// a specific target and scoped to a namespace, type, member, etc. 

[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Sonar Code Smell", "S1172:Unused method parameters should be removed", Justification = "<Pending>", Scope = "member", Target = "~M:ConsoleApplication14.Program.Main(System.String[])")] 
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Sonar Code Smell", "S1186:Methods should not be empty", Justification = "<Pending>", Scope = "member", Target = "~M:ConsoleApplication14.Program.Main(System.String[])")] 
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Sonar Code Smell", "S1118:Utility classes should not have public constructors", Justification = "<Pending>", Scope = "type", Target = "~T:ConsoleApplication14.Program")] 

ich die neueste Version SonarLint bin mit (2.9.0.384). Könnten Sie einen einfachen Repro-Fall erstellen, damit ich damit arbeiten kann, um herauszufinden, was passiert?

+0

Könnte es ein Skalierungsproblem sein? Ich verwende 2.9.0.355 zusammen mit dem neuesten Nuget-Paket für eine C# -Lösung, die etwa 500.000 Zeilen ausführbaren Quellcode enthält (ohne Kommentarzeilen und geschweifte Klammern), und es ist nicht nur quälend langsam, es zeigt das beschriebene Problem. –

+0

Ich bin mir nicht sicher, aber es lohnt sich zu überprüfen. Ich werde auf Sie zurückkommen, wenn Sie fertig sind. In der Zwischenzeit und wenn es Ihnen nichts ausmacht, könnten Sie ein kleines Projekt erstellen, um zu bestätigen, dass es an dem kleinen Projekt arbeitet? Nur zur bestätigung. –

+1

Ich versuchte es auf einer viel kleineren Lösung (nur einige tausend Zeilen Code) und hatte die gleiche Erfahrung. Wenn ich es jedoch an einer anderen, sehr kleinen Testlösung versuchte, die nur zwei Warnungen zeigte, verschwanden sie, nachdem sie unterdrückt worden waren, und wurden danach selbst nach einer Wiederherstellung nicht angezeigt. Es scheint ein Skalierungsproblem zu sein.Ich habe auch bemerkt, dass es in dem größeren Projekt (oben) ziemlich langsam ist, die unterdrückten Warnungen aus dem Fehlerliste-Bildschirm zu entfernen, und zwar eins nach dem anderen, bis es schließlich aufhört. –

Verwandte Themen