Wie finden Sie ungenutzte Symbole, Bilder und Zeichenketten in .resx-Dateien, die möglicherweise "verwaist" sind und nicht mehr benötigt werden?
Antworten
Zu viele Anzeigen?Kürzlich ResXManager 1.0.0.41 eine Funktion hinzugefügt, um die Anzahl der Verweise auf eine String-Ressource anzuzeigen.
Ich konnte keine bestehende Lösung finden, die nach String-Ressourcenverweisen in XAML-Dateien sucht und unbenutzte im Batch-Verfahren entfernt.
Also habe ich dies geschrieben: https://github.com/Microsoft/RESX-Unused-Finder
Er durchsucht ein Projektverzeichnis nach Verweisen auf String-Ressourcen und zeigt dann eine Liste derjenigen an, für die er keine Übereinstimmung finden konnte. Sie können eine Vorlage angeben, nach der gesucht werden soll, damit Verweise in XAML-Dateien gefunden werden können.
Ich habe eine kostenlose Open-Source-VS-Erweiterung entwickelt, die nach unbenutzten Bildern in einem Projekt sucht, und gerade die erste Version veröffentlicht: https://marketplace.visualstudio.com/items?itemName=Jitbit1.VSUnusedImagesFinder
Dies ist keine Information, die ein Algorithmus zuverlässig berechnen kann. Das geprüfte Programm könnte eine Liste aller Ressourcen abrufen und etwas mit ihnen machen, z. B. den Benutzer aus mehreren Symbolen auswählen lassen.
Am besten ist es wahrscheinlich, nach allen Verweisen auf die API Ihrer Wahl für den Ressourcenzugriff zu suchen und diese manuell zu überprüfen. verwenden grep
/ sed
können Sie die Anzahl der manuell zu prüfenden Websites verringern, indem Sie alle "einfachen" Websites, die eine einfache Zeichenfolge verwenden, bearbeiten.
Da ich keine Möglichkeit fand, eine einfach y schnell Lösung, aber ich habe zumindest eine Lösung gefunden, die es mir ermöglicht, das gewünschte Ergebnis zu erzielen, auch wenn es einige Zeit dauert (ideal für einen faulen Sonntagnachmittag).
Die Lösung umfasst Visual Studio .NET 2010 und ReSharper (ich verwende Version 7.1) und geht wie folgt.
Schritt-für-Schritt-Lösung
1.) Klicken Sie mit der rechten Maustaste auf Ihre primäre RESX-Datei in VS.NET und wählen Sie im Kontextmenü "Verwendungen suchen":
Dadurch wird das Fenster "Ergebnisse suchen" von ReSharper geöffnet.
2.) Doppelklicken Sie auf jedes Vorkommen im Lösungsfenster:
Dadurch wird das Quellcode-Fenster mit der Ressource geöffnet.
3.) Benennen Sie diese Ressource aus dem Quellcodefenster heraus um:
Es öffnet sich der ReSharper-Dialog "Ressource umbenennen".
4.) Geben Sie der Ressource einen neuen Namen mit einem eindeutige Vorsilbe . In meinem Beispiel ist dies "TaskDialog_":
Es wird sowohl die Ressource als auch die automatisch generierte C#-Wrapper/Access-Klasse umbenannt.
5.) Wiederholen Sie die obigen Schritte 2, 3 und 4 für alle Ressourcen im Fenster "Verwendungen".
6.) Öffnen Sie die RESX-Datei im Ressourcen-Editor von Visual Studio und wählen Sie alle Dateien ohne das Präfix aus:
7.) Klicken Sie nun auf die Schaltfläche "Ressource entfernen" am oberen Rand des Fensters oder drücken Sie einfach die Del Schlüssel:
Sie haben nun eine RESX-Datei, in der nur die tatsächlich verwendeten Ressourcen enthalten sind.
8.) (Optional) Wenn Sie Ressourcen in mehreren Sprachen haben (z. B. "Resources.de.resx" für Deutsch), wiederholen Sie die Schritte 7 und 8 auch für diese RESX-Dateien.
Warnung
Bitte beachten Sie, dass dies nicht funktioniert, wenn Sie auf Ihre Strings anders als über die stark typisierte, automatisch generierte C#-Klasse Resources
.
- See previous answers
- Weitere Antworten anzeigen