Ich habe ein paar Diagnose-Analyzer und Code-Fixes erstellt. Sie alle arbeiten wie erwartet im experimentellen Bienenstock.Analysator arbeitet, aber potentielle Code-Fixes verschwinden
Ich baue sie als Nuget
Paket und fügen Sie zu einem Projekt in einer normalen Instanz von VS2015
. Seltsamerweise funktioniert eine der Analysator/Code-Fix-Combos korrekt, aber für den anderen funktioniert nur der Analyzer und es werden keine Code-Fixes vorgeschlagen (wie erwähnt, funktioniert es im Experimental-Hive).
Meine Frage ist, wie kann ich dieses Problem analysieren? In ActivityLog.xml ist nichts enthalten. Hat jemand anderes dieses Verhalten beobachtet?
AKTUALISIEREN: Ich getestet mit der VSIX-Erweiterung in einer normalen Instanz und der Code-Fix erschien korrekt. Ich habe diese Datei geschlossen und wieder geöffnet und der Code-Fix war nicht mehr verfügbar. Ganz gleich, wie oft ich die Datei schließe und wieder öffne, der Code-Fix kommt nicht zurück. Aber dann öffne ich eine andere Datei, die einen anderen Diagnose- und Code-Fix enthält, und das startet irgendwie den anderen Code-Fix, weil ich dadurch den Code-Fix zuverlässig wiederherstellen kann!
Das klingt vielleicht lächerlich, aber ich denke, ich habe dies mit anderen 3rd-Party-Analysatoren beobachtet. Vielleicht gibt es ein Problem mit meiner VS-Installation?
Roslyn Quellcode [on GitHub] (https://github.com/dotnet/roslyn). Die Analysatoren müssen von dort irgendwie ausgelöst werden (vermutlich ist es der [AnalyzerDriver] (https://github.com/dotnet/roslyn/blob/a4e375b95953e471660e9686a46893c97db70b0e/src/Compilers/Core/Portable/DiagnosticAnalyzer/AnalyzerDriver.cs). Sie könnten [debug Roslyn] (https://github.com/dotnet/roslyn/wiki/Building-Testing-and-Debugging) über deine Analysatoren hinaus, um zu sehen, warum es nicht funktioniert. –
Ich sehe die gleiche Sache auf VS 2017 RTM auf dem Standard-Code-Analyzer-Projekt, die Kleinschreibung in Typ Symbole überprüft.Die Code-Reparatur funktioniert manchmal, manchmal nicht.Es zeigt die Code-Fix Glühbirne, aber wenn ich es anklicke, verschwindet es einfach, anstatt die Liste der Code-Fixes zu zeigen Ich habe versucht, sowohl F5 (VSIX) als auch die Installation des von mir erstellten nigets auszuführen Ich habe noch keinen zuverlässigen Weg gefunden, um dieses Verhalten zu beheben, und scheint wie ein Fehler in Roslyn oder möglicherweise Visual Studio zu sein. – angularsen