Benutzer mit den meisten Antworten
Nicht verwendete Verweise automatisch entfernen

Frage
-
Hallo,
ich habe jetzt schon an mehreren Stellen gelesen, dass es im Solution Explorer wenn man das Kontextmenü des References-Knotens aufruft, alle nicht verwendeten Verweise automatisch entfernen kann. Ich kann nur diese Option nicht finden. Geht das denn irgendwie?
Antworten
-
Hallo Urbain,
ich habe jetzt schon an mehreren Stellen gelesen, dass es im Solution Explorer wenn man das Kontextmenü des References-Knotens aufruft, alle nicht verwendeten Verweise automatisch entfernen kann. Ich kann nur diese Option nicht finden. Geht das denn irgendwie?
Wenn Du die Dateiverweise meinst und nicht die usings, gibt es diese Option in dieser einfachen und direkten Form nicht.
Der Visual Basic-Projektdesigner bietet über die Registerkarte Verweise die Schaltfläche Nicht verwendete Verweise... an, über die man nach ungenutzten Verweisen suchen kann.
Im C#-Projektdesigner 2008/2010 gibt es dazu jedoch keine Entsprechung. Es gibt Tools wie Resharper, die das auf halbautomatische Weise erledigen können, in der viel weniger automatisierten Visual Studio C#-IDE ist man jedoch davon ausgegangen, dass sich eine solche Option in einigen Szenarien sogar hinderlich auswirken könnte. Man könnte z.B. einen Verweis nur deshalb einfügen wollen, um Visual Studio zu veranlassen, die entsprechende Datei ins Ausgabeverzeichnis zu kopieren, oder man könnte zwar einen Verweis einfügen dann aber auf die Assembly nur über Reflection zugreifen, usw.
Der C#-Compiler wird keine Metadaten zu nicht verwendeten aber referenzierten Assemblies im Kompilat speichern, und die wenigen Milisekunden, die er braucht, um zu entscheiden, ob ein Verweis tatsächlich verwendet wird oder nicht, sind für die Performanz der Kompilierung nicht relevant.
Freilich blähen nicht verwendete Referenzen die Anwendung auf - in dem Sinne, dass die nichtverwendeten Assemblies (bei Lokale Kopie: true) ins Ausgabeverzeichnis kopiert werden -, doch ist auch dies vernachlässigbar, da GAC-Assemblies z.B. standardmäßig *nicht* ins Ausgabeverzeichnis kopiert werden.
Die C#-IDE mutet dem Entwickler mehr zu, das ist wahr, ich finde aber dass die aktuelle IDE-Realisierung einen guten Kompromiss zwischen Annehmlichkeit und Flexibilität bedeutet. In manchen Softwarefirmen ist es übrigens gängige Praxis, Lokale Kopie auf false zu setzen, sobald man einen Verweis hinzufügt. Das verhindert das Kopieren der referenzierten (und möglicherweise später nicht verwendeten) Assembly ins Ausgabeverzeichnis. Für alle anderen Fälle gibt es weiterhin den Kontextmenübefehl Entfernen (Projektexplorer > Verweise).
Gewusst wie: Entfernen von nicht verwendeten Verweisen (Visual Basic):
http://social.msdn.microsoft.com/Forums/de-DE/visual_studiode/thread/c601ad38-5ea4-48ea-8cf3-bfdc910b7045?prof=required
Gewusst wie: Hinzufügen oder Entfernen von Verweisen in Visual Studio:
http://msdn.microsoft.com/de-de/library/wkze6zky.aspxGruß
Marcel- Als Antwort vorgeschlagen Elmar Boye Samstag, 11. September 2010 08:58
- Als Antwort markiert Urbain de Puce Samstag, 11. September 2010 19:13
Alle Antworten
-
Hallo Urbain,
im Menü "Projekt" => "<Dein Projekt>-Eigenschaften" => "Verweise" gibt es oben rechts den Button "Nicht verwendete Verweise ..."; darüber kannst Du die entfernen.
Siehe MSDN gleich der erste Eintrag.
Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de -
Hallo Urbain,
ich habe jetzt schon an mehreren Stellen gelesen, dass es im Solution Explorer wenn man das Kontextmenü des References-Knotens aufruft, alle nicht verwendeten Verweise automatisch entfernen kann. Ich kann nur diese Option nicht finden. Geht das denn irgendwie?
Wenn Du die Dateiverweise meinst und nicht die usings, gibt es diese Option in dieser einfachen und direkten Form nicht.
Der Visual Basic-Projektdesigner bietet über die Registerkarte Verweise die Schaltfläche Nicht verwendete Verweise... an, über die man nach ungenutzten Verweisen suchen kann.
Im C#-Projektdesigner 2008/2010 gibt es dazu jedoch keine Entsprechung. Es gibt Tools wie Resharper, die das auf halbautomatische Weise erledigen können, in der viel weniger automatisierten Visual Studio C#-IDE ist man jedoch davon ausgegangen, dass sich eine solche Option in einigen Szenarien sogar hinderlich auswirken könnte. Man könnte z.B. einen Verweis nur deshalb einfügen wollen, um Visual Studio zu veranlassen, die entsprechende Datei ins Ausgabeverzeichnis zu kopieren, oder man könnte zwar einen Verweis einfügen dann aber auf die Assembly nur über Reflection zugreifen, usw.
Der C#-Compiler wird keine Metadaten zu nicht verwendeten aber referenzierten Assemblies im Kompilat speichern, und die wenigen Milisekunden, die er braucht, um zu entscheiden, ob ein Verweis tatsächlich verwendet wird oder nicht, sind für die Performanz der Kompilierung nicht relevant.
Freilich blähen nicht verwendete Referenzen die Anwendung auf - in dem Sinne, dass die nichtverwendeten Assemblies (bei Lokale Kopie: true) ins Ausgabeverzeichnis kopiert werden -, doch ist auch dies vernachlässigbar, da GAC-Assemblies z.B. standardmäßig *nicht* ins Ausgabeverzeichnis kopiert werden.
Die C#-IDE mutet dem Entwickler mehr zu, das ist wahr, ich finde aber dass die aktuelle IDE-Realisierung einen guten Kompromiss zwischen Annehmlichkeit und Flexibilität bedeutet. In manchen Softwarefirmen ist es übrigens gängige Praxis, Lokale Kopie auf false zu setzen, sobald man einen Verweis hinzufügt. Das verhindert das Kopieren der referenzierten (und möglicherweise später nicht verwendeten) Assembly ins Ausgabeverzeichnis. Für alle anderen Fälle gibt es weiterhin den Kontextmenübefehl Entfernen (Projektexplorer > Verweise).
Gewusst wie: Entfernen von nicht verwendeten Verweisen (Visual Basic):
http://social.msdn.microsoft.com/Forums/de-DE/visual_studiode/thread/c601ad38-5ea4-48ea-8cf3-bfdc910b7045?prof=required
Gewusst wie: Hinzufügen oder Entfernen von Verweisen in Visual Studio:
http://msdn.microsoft.com/de-de/library/wkze6zky.aspxGruß
Marcel- Als Antwort vorgeschlagen Elmar Boye Samstag, 11. September 2010 08:58
- Als Antwort markiert Urbain de Puce Samstag, 11. September 2010 19:13
-
Danke für die ausführliche Antwort. Ich verwende ausschließlich C#. Ich dachte die Option sei auch für mich verfügbar, aber macht ja nichts. Ich hab garnicht daran gedacht, dass Assemblies aus dem GAC sowieso nicht kopiert werden. Dadurch erübrigt sich mein Problem wieder :)