W programie Visual Studio 2013 liczba odwołań do specjalnego kodu (metoda, właściwość, pole, ...) jest pokazywana przez Code Lens . Chcę uzyskać nieużywane (zerowe) kody w Visual Studio. Czy jest jakiś sposób, aby je zdobyć?
Mam na myśli poniższe odniesienie:
c#
visual-studio-2013
codelens
Nima Rostami
źródło
źródło
public
jest nieużywany bez przeszukania całej bazy kodu. Jednak w przypadku nieużywanych pracowników wewnętrznych i szeregowych Analiza kodu wyświetli ostrzeżenie, jeśli masz włączone odpowiednie ostrzeżenie.Odpowiedzi:
Prawdopodobnie najlepszym i najłatwiejszym sposobem osiągnięcia tego, czego szukasz, jest użycie wbudowanego narzędzia do analizy kodu w programie Visual Studio, aby znaleźć i zabrać Cię bezpośrednio do martwego kodu i nieużywanych elementów członkowskich.
W tym celu utworzyłem nowy plik zestawu reguł analizy kodu (poprzez Plik-> Nowy-> Plik , upewniając się, że wybrano Ogólne w lewym panelu i przewijając w dół, aby znaleźć Zestaw reguł analizy kodu , nadając mu nazwę pliku, a następnie wyszukując i wybierając poniższe zasady). Zobacz poniżej zawartość pliku zestawu reguł, który możesz skopiować i wkleić do nowego pliku z rozszerzeniem .ruleset do użycia.
Mając plik zestawu reguł, można kliknąć prawym przyciskiem myszy plik projektu w panelu Eksplorator rozwiązań i wybrać Właściwości . W oknach właściwości projektu kliknij kartę Analiza kodu w lewym panelu, a następnie kliknij Otwórz, aby przejść do lokalizacji pliku .ruleset. Jeśli przejdziesz do właściwości pliku rozwiązania (w przeciwieństwie do pliku projektu), możesz ustawić plik analizy kodu dla każdego projektu w rozwiązaniu w jednym miejscu (w obszarze Ustawienia analizy kodu i korzystając z menu rozwijanego, aby wybrać UWAGA: Musisz jednak wcześniej przejrzeć plik zestawu reguł, aby pojawił się on na liście rozwijanej w tym oknie właściwości).
Następnie wystarczy uruchomić analizę kodu w projekcie / rozwiązaniu (za pomocą opcji Analiza -> Uruchom analizę kodu na rozwiązaniu -LUB- Alt + F11 ) i wróci ona jako ostrzeżenia, wszelkie metody bez odwołań lub niewykorzystane elementy członkowskie, które znajdzie. Znajdzie nawet metody, do których odwołuje się metoda, która sama nie ma żadnych odniesień w innym miejscu.
Bądź jednak ostrożny, ponieważ jednym ze sposobów, w jaki analiza kodu pod kątem martwego kodu może kierować Cię w niewłaściwy sposób, jest to, że odniesienie jest „ukryte” przez wywołanie metody tylko przez delegatów i oczywiście przez odbicie.
W szczególności zasady wykrywania martwego kodu są następujące:
Poniżej znajduje się zawartość pliku .ruleset, który można uzyskać, wykonując powyższe kroki, aby zachować zgodność. Możesz po prostu skopiować poniższy XML, wkleić go do Notatnika ++, zapisać gdzieś z rozszerzeniem .ruleset , przeglądać i używać jak wyjaśniono powyżej:
<?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0"> <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> <Rule Id="CA1801" Action="Warning" /> <Rule Id="CA1804" Action="Warning" /> <Rule Id="CA1811" Action="Warning" /> <Rule Id="CA1812" Action="Warning" /> <Rule Id="CA1823" Action="Warning" /> </Rules> <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native"> <Rule Id="C6259" Action="Warning" /> </Rules> </RuleSet>
źródło
Przejrzałbym każdy plik, wykonałem polecenie Ctrl-MO, aby zwinąć wszystko, a następnie przewijałem, szukając odniesienia 0.
źródło
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
źródło
Oto ręczny sposób wykonania tego, którego użyłem do znalezienia nieużywanych klas, które są oznaczone jako publiczne.
Uwaga: jeśli nie zastosujesz się do reguły jednej klasy na plik, będzie to wymagało znacznie więcej pracy. Ponadto wszystkie punkty końcowe usługi API, które trzeba będzie sprawdzić, czy nie są używane przez żadne projekty zewnętrzne.
źródło