Visual Studio: Erkennen nicht benötigter Assemblies

Bei größeren und/oder lang laufenden Projekten tendiere ich dazu, auf viele Assemblys und Namespaces zu verweisen, und oft muss ich später einige Funktionen entfernen oder in ein anderes Projekt verschieben.

Ich frage mich nur, gibt es eine Möglichkeit, jedes Projekt (heck, jede .cs-Datei) in meiner gesamten Visual Studio-Lösung zu überprüfen und eine Liste aller referenzierten Assemblies und Namespaces zu erhalten, die nicht wirklich verwendet werden und sicher entfernt werden können? Ich weiß, dass ReSharper es für eine einzelne Code-Datei tun kann, aber ich sah keine Option, alle Dateien zu überprüfen oder nach nicht benötigten Assemblies zu suchen.

Verwenden Sie Visual Studio 2005 und 2008 Professional, wenn dies wichtig ist.

Edit: Danke bis jetzt. Das Problem mit ReSharper oder "Remove and Readd if build breaks" ist, dass es bei jeder einzelnen Datei und Assembly ziemlich mühsam ist (Mein Projekt hat ca. 120 .cs Dateien in 7 Assemblies und referenziert insgesamt 18 Assemblies außerhalb der Lösung), also suche ich idealerweise nach etwas "one-click". Große Bonuspunkte für einen automatischen Weg, der in Buildskripten verwendet werden kann, um einen Bericht zu erstellen :)

0
hinzugefügt bearbeitet
Ansichten: 2
Resharper hat kürzlich eine billigere persönliche Lizenz erworben. Ich denke, es ist jetzt 134 € für C #. Kostenlose Tools wären natürlich nett (wenn MSBuild es tun könnte, würde von Honkey-Dorey!), Aber ich suche hauptsächlich nach etwas, das zuerst funktioniert :)
hinzugefügt der Autor Michael Stum, Quelle
hinzugefügt der Autor Josh Lee, Quelle
Wäre schön, wenn die Frage in Bezug auf freie Tools, nicht nur Tools, wäre. Ich habe zufällig Nachschärfen, also die Lösung unten ist gut, aber immer noch ...
hinzugefügt der Autor Oskar, Quelle

10 Antworten

Ja, ich glaube nicht, dass es einen gibt. Ich lösche nur ein paar, die ich glaube nicht benötigt werden, dann build: /

Übrigens. Das wird weiterhin Fehler verwenden. Sie können die Visual Studio Power-Befehle verwenden zum Entfernen und Sortieren von Usings, also zuerst, dann lösche zufällige Assemblies: D

0
hinzugefügt

Jeder anständige Code-Profiler wird dies für Sie tun. Ich mag DevPartner persönlich.

0
hinzugefügt

Es wird keine Referenzen in Code auf Ihre referenzierten Assemblies loswerden (denke ich), aber Sie können zu den Eigenschaften jedes Ihrer Projekte gehen, zu Referenzen gelangen und auf "Unbenutzte Referenzen ..." klicken. Visual Studio bietet Ihnen dann die Möglichkeit, sie direkt dort zu entfernen.

Keine Möglichkeit, dies auf der Lösungsebene zu tun.

0
hinzugefügt

(Cross-gepostet von hier ) Wenn VisualStudio (oder ist es msbuild?) Nicht verwendete Verweise erkennt und sie nicht in die Ausgabedatei aufnimmt, können Sie ein Skript schreiben, das die Verweise aus dem csproj analysiert und mit den referenzierten Assemblys vergleicht, die durch Reflektion auf dem gefunden wurden Projektausgabe

Wenn du motiviert bist ...

0
hinzugefügt

Ich habe diese Frage bei der Suche in Google gefunden und nach einer Möglichkeit gesucht, nicht verwendete "Using" -Anweisungen aus meinem Code zu entfernen.

Refactor ist großartig, aber es ist nicht verfügbar für mich. Wie sich jedoch herausstellt, macht Visual Studio 2008 dies alleine.

Hier sind die Schritte:

  1. Laden Sie den Code in Visual Studio.
  2. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle auf der Codepage.
  3. Klicken Sie im Menü auf "Organisiere Usings".
  4. Klicken Sie auf "Nicht verwendete Usings entfernen"

Erledigt. Mir ist klar, dass dies nicht die ursprüngliche Frage beantwortet (dies massenhaft für ein ganzes Projekt tun), aber es beantwortet meine Frage.

0
hinzugefügt
Dies ist auch in Visual Studio 2010 verfügbar
hinzugefügt der Autor Junior M, Quelle

Resharper will do this for you and you can set it up in the Clean Code option that you can run solution wide ;o)

0
hinzugefügt

Wenn Sie ReSharper installiert haben, können Sie im Lösungs-Explorer mit der rechten Maustaste auf eine Referenz klicken und auf Abhängigen Code suchen klicken. Wenn es mit einem Ergebnisdialog zurückkommt, verwenden Sie diese Referenz/Baugruppe. Wenn Sie die Nachricht "Code abhängig von Modul Modulname nicht gefunden" erhalten. Dann sollten Sie in Ordnung sein, diese Referenz/Baugruppe zu entfernen, da sie nicht verwendet wird.

0
hinzugefügt

Wie bereits in früheren Antworten erwähnt, funktioniert Resharper gut für diese und eine Vielzahl anderer Fälle, wie z als Wege, Code sauberer zu machen und bestimmte Dinge für dich zu generieren. Der beste Weg, um wirklich alle Vorteile von Resharper herauszufinden, ist es, die Testversion herunterzuladen, ein Keymap Cheatsheet und kleben Sie es neben sich, wo Sie gerade arbeiten.

Lange Rede, kurzer Sinn, es löst dieses Problem, aber es macht viel mehr als nur das.

0
hinzugefügt

Wenn Sie ReSharper haben, wählen Sie die Lösung, klicken Sie mit der rechten Maustaste und wählen Sie Clean-up-Code. Resharper wird dann jede Codedatei in der Lösung durchlaufen.

Wenn der Compiler ausgeführt wird, wird die Referenz nicht hinzugefügt, wenn kein Code diese DLL verwendet.

0
hinzugefügt

Das Entfernen nicht verwendeter Referenzen ist ein Feature, das Visual Studio 2008 bereits unterstützt. Leider nur für VB .NET-Projekte.

Ich habe einen Vorschlag zu Microsoft Connect geöffnet, um diese Funktion auch für C# -Projekte zu erhalten:

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

Wenn Sie diese Funktion auch mögen, können Sie meinen Vorschlag wählen.

0
hinzugefügt
Danke, dass Sie den Vorschlag auf connect gemacht haben, nicht genug Leute haben sich die Mühe gemacht, dies zu tun. Ich frage mich auch, ob es irgendwie möglich ist, diese versteckte Eigenschaft durch Verwendung eines Makros für ein C# -Projekt zu bekommen.
hinzugefügt der Autor jpierson, Quelle