Jak mogę znaleźć i usunąć nieużywane referencje w moich projektach?
Wiem, że możesz łatwo usunąć instrukcje using w porównaniu z 2008 r., Ale nie usuwa to rzeczywistego odniesienia w twoich projektach. Biblioteka dll, do której istnieje odwołanie, będzie nadal kopiowana do twojego pakietu bin / setup.
.net
visual-studio
reference
Boris Callens
źródło
źródło
Odpowiedzi:
* Uwaga: zobacz http://www.jetbrains.net/devnet/message/5244658, aby uzyskać inną wersję tej odpowiedzi.
Czytając posty, wygląda na to, że jest pewne zamieszanie co do pierwotnego pytania. Pozwól, że się tym zajrzę.
Oryginalny post tak naprawdę zadaje pytanie: „Jak zidentyfikować i usunąć odwołania z jednego projektu Visual Studio do innych projektów / zestawów, które nie są używane?” Plakat chce, aby zestawy nie były już wyświetlane jako część wyników kompilacji.
W takim przypadku ReSharper może pomóc ci je zidentyfikować , ale musisz je usunąć samodzielnie.
Aby to zrobić, otwórz References inth Solution Browser, kliknij prawym przyciskiem myszy każdy przywoływany zespół i wybierz „Znajdź zależny kod”. Widzieć:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
Otrzymasz albo:
Lista zależności tego odwołania w oknie przeglądarki lub
Okno dialogowe z informacją „Nie znaleziono kodu zależnego od modułu XXXXXXX”.
Jeśli uzyskasz drugi wynik, możesz kliknąć prawym przyciskiem myszy odniesienie, wybrać Usuń i usunąć je z projektu.
Chociaż musisz to zrobić „ręcznie”, tj. Po jednym odwołaniu na raz, zadanie zostanie wykonane. Jeśli ktoś zautomatyzował to w jakiś sposób, chciałbym usłyszeć, jak to się stało.
Możesz zignorować te w .Net Framework, ponieważ normalnie nie są one kopiowane do wyniku kompilacji (zazwyczaj - choć niekoniecznie w przypadku aplikacji Silverlight).
Niektóre posty wydają się odpowiadać na pytanie: „Jak usunąć klauzule using (C #) z pliku kodu źródłowego, które nie są potrzebne do rozwiązania jakichkolwiek odwołań w tym pliku”.
W tym przypadku ReSharper pomaga na kilka sposobów:
Identyfikuje nieużywane klauzule using podczas wykrywania błędów w locie. Pojawiają się jako ostrzeżenia o inspekcji kodu - kod będzie wyszarzony (domyślnie) w pliku, a ReSharper poda wskazówkę, aby go usunąć:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
Umożliwia automatyczne usuwanie ich w ramach procesu czyszczenia kodu:
http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives
Wreszcie, zdaj sobie sprawę, że ReSharper wykonuje statyczną analizę kodu twojego rozwiązania. Tak więc, jeśli masz dynamiczne odniesienie do zestawu - powiedzmy przez odbicie lub zestaw, który jest dynamicznie ładowany w czasie wykonywania i dostępny przez interfejs - nie zostanie odebrany. Nic nie zastąpi zrozumienia podstawy kodu i zależności projektu podczas pracy nad projektem. Uważam, że funkcje ReSharper są bardzo przydatne.
źródło
możesz użyć rozszerzenia „ Remove Unused References ”, które napisałem:
http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097
źródło
Usuwanie nieużywanych odwołań to funkcja już obsługiwana przez program Visual Studio 2008. Niestety tylko dla projektów VB .NET.
Otworzyłem sugestię w Microsoft Connect, aby uzyskać tę funkcję również dla projektów C #:
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326
Jeśli podoba Ci się również ta funkcja, możesz zagłosować na moją sugestię.
źródło
Spróbuj tego: Asystent odniesień
źródło
ReSharper 6.1 będzie zawierał następujące funkcje:
Zoptymalizuj odwołania : przeanalizuj odwołania do zestawów i ich zastosowania w kodzie, pobierz listę zbędnych odwołań i usuń je.
Usuń nieużywane odniesienia : szybka refaktoryzacja w celu usunięcia zbędnych odwołań do zestawów.
Bezpieczne usuwanie odniesień do zestawów: usuwa odniesienia do zestawów, jeśli wszystkie z nich są nadmiarowe, w przeciwnym razie usuwa użycie i może usunąć tylko nadmiarowe odniesienia do zestawów z wybranej listy.
źródło
ReSharper zrobi to za Ciebie (i wiele więcej!)
źródło
Zrobiłem to bez rozszerzenia w VS 2010 Ultimate Architecture-> Generate Dependency Graph-> By Assembly, pokazuje używane zestawy i ręcznie usuwa nieużywane odwołania.
źródło
Mam bezpłatną odpowiedź, która działa w dowolnej wersji Visual Studio i dowolnej wersji Framework. Nie usuwa nieużywanych odniesień, ale je identyfikuje.
Możesz użyć Telerik JustDecompile na swoim projekcie dll. Po prostu otwórz bibliotekę dll w JustDecompile i przejdź pod,
References
aby zobaczyć, co jest faktycznie używane w skompilowanej bibliotece dll.źródło
Biorąc pod uwagę, że VisualStudio (a może jest to msbuild?) Wykrywa nieużywane odwołania i nie umieszcza ich w pliku wyjściowym, można napisać skrypt, który analizuje odwołania z csproj i porównuje go z odniesieniami do zestawów wykrytych przez odbicie w wyniki projektu.
Jeśli masz motywację ...
źródło
Myślę, że są kopiowane w bin \, ponieważ w projekcie, który usunął odniesienie, mają odniesienia do innych projektów, które mają to samo odniesienie ...
źródło
Jeśli wiesz, które odwołania nie są używane, możesz je usunąć ręcznie.
W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy odwołanie w węźle odwołania , a następnie kliknij przycisk Usuń.
źródło