Wie kann ich nicht verwendete Referenzen in meinen Projekten finden und löschen?
Ich weiß, dass Sie die using-Anweisungen in vs 2008 leicht entfernen können, aber dies entfernt nicht die tatsächliche Referenz in Ihren Projekten. Die referenzierte DLL wird weiterhin in Ihr bin / setup-Paket kopiert.
.net
visual-studio
reference
Boris Callens
quelle
quelle
Antworten:
* Hinweis: Eine andere Version dieser Antwort finden Sie unter http://www.jetbrains.net/devnet/message/5244658 .
Beim Durchlesen der Beiträge scheint es einige Verwirrung hinsichtlich der ursprünglichen Frage zu geben. Lassen Sie mich einen Stich machen.
Der ursprüngliche Beitrag stellt wirklich die Frage: "Wie identifiziere und entferne ich Verweise von einem Visual Studio-Projekt auf andere Projekte / Assemblys, die nicht verwendet werden?" Das Poster möchte, dass die Assemblys nicht mehr als Teil der Build-Ausgabe angezeigt werden.
In diesem Fall kann ReSharper Ihnen helfen , sie zu identifizieren , aber Sie müssen sie selbst entfernen .
Öffnen Sie dazu den Verweis im Lösungsbrowser, klicken Sie mit der rechten Maustaste auf jede referenzierte Assembly und wählen Sie "Abhängigen Code suchen". Sehen:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
Sie erhalten entweder:
Eine Liste der Abhängigkeiten von dieser Referenz in einem Browserfenster oder
Ein Dialogfeld mit der Meldung "Code abhängig vom Modul XXXXXXX wurde nicht gefunden."
Wenn Sie das zweite Ergebnis erhalten, können Sie mit der rechten Maustaste auf die Referenz klicken, Entfernen auswählen und aus Ihrem Projekt entfernen.
Während Sie dies "manuell" tun müssen, dh jeweils eine Referenz, wird die Arbeit erledigt. Wenn jemand dies auf irgendeine Weise automatisiert hat, bin ich daran interessiert zu hören, wie es gemacht wurde.
Sie können diejenigen im .Net Framework so gut wie ignorieren, da sie normalerweise nicht in Ihre Build-Ausgabe kopiert werden (normalerweise - obwohl dies für Silverlight-Apps nicht unbedingt der Fall ist).
Einige Beiträge scheinen die Frage zu beantworten: "Wie entferne ich mithilfe von Klauseln (C #) aus einer Quellcodedatei, die nicht zum Auflösen von Verweisen in dieser Datei erforderlich sind?"
In diesem Fall hilft ReSharper auf verschiedene Weise:
Identifiziert nicht verwendete mithilfe von Klauseln für Sie während der Erkennung von Fehlern im laufenden Betrieb. Sie werden als Warnungen zur Codeinspektion angezeigt. Der Code wird in der Datei ausgegraut angezeigt (Standardeinstellung), und ReSharper gibt einen Hinweis zum Entfernen:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
Ermöglicht das automatische Entfernen im Rahmen der Codebereinigung:
http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives
Stellen Sie schließlich fest, dass ReSharper eine statische Code-Analyse für Ihre Lösung durchführt. Wenn Sie also einen dynamischen Verweis auf die Assembly haben - beispielsweise durch Reflektion oder eine Assembly, die zur Laufzeit dynamisch geladen wird und über eine Schnittstelle zugegriffen wird - wird diese nicht abgerufen. Es gibt keinen Ersatz dafür, Ihre Codebasis und die Projektabhängigkeiten zu verstehen, während Sie an Ihrem Projekt arbeiten. Ich finde die ReSharper-Funktionen sehr nützlich.
quelle
Sie können die von mir geschriebene Erweiterung " Nicht verwendete Referenzen entfernen " verwenden:
http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097
quelle
Das Entfernen nicht verwendeter Referenzen ist eine Funktion, die Visual Studio 2008 bereits unterstützt. Leider nur für VB .NET-Projekte.
Ich habe einen Vorschlag für 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 Ihnen diese Funktion auch gefällt, können Sie über meinen Vorschlag abstimmen.
quelle
Versuchen Sie Folgendes: Referenzassistent
quelle
ReSharper 6.1 enthält folgende Funktionen:
Referenzen optimieren : Analysieren Sie Ihre Assemblyreferenzen und ihre Verwendung im Code, rufen Sie eine Liste redundanter Referenzen ab und entfernen Sie sie.
Nicht verwendete Referenzen entfernen : Schnelles Refactoring zum Entfernen redundanter Assemblyreferenzen.
Sicheres Löschen von Baugruppenreferenzen : Löscht Baugruppenreferenzen, wenn alle redundant sind. Andernfalls werden Verwendungen verworfen und nur redundante Baugruppenreferenzen aus der ausgewählten Liste entfernt.
quelle
ReSharper erledigt dies für Sie (und vieles mehr!)
quelle
Ich habe dies ohne Erweiterung in VS 2010 Ultimate Architecture-> Abhängigkeitsdiagramm generieren-> Nach Assembly ausgeführt. Es zeigt verwendete Assemblys an und entfernte nicht verwendete Referenzen manuell.
quelle
Ich habe eine kostenlose Antwort, die in jeder Version von Visual Studio und jeder Framework-Version funktioniert. Die nicht verwendeten Referenzen werden nicht entfernt, aber identifiziert.
Sie können Telerik JustDecompile für Ihre Projekt-DLL verwenden. Öffnen Sie einfach die DLL in JustDecompile und gehen Sie unter, um
References
zu sehen, was tatsächlich in der kompilierten DLL verwendet wird.quelle
Da VisualStudio (oder ist es msbuild?) Nicht verwendete Referenzen erkennt und diese nicht in die Ausgabedatei aufnimmt, können Sie ein Skript schreiben, das die Referenzen aus dem csproj analysiert und diese mit den durch Reflexion auf der referenzierten Assemblies vergleicht Projektausgabe.
Wenn Sie motiviert sind ...
quelle
Ich denke, dass in bin \ kopiert werden, weil in dem Projekt, das die Referenz entfernt hat, Referenz auf ein anderes Projekt haben, die die gleiche Referenz haben ...
quelle
Wenn Sie wissen, welche Referenzen nicht verwendet werden, können Sie sie manuell entfernen.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Referenz im Knoten Referenzen , und klicken Sie dann auf Entfernen.
quelle