.net visual - Rimuovi riferimenti inutilizzati(!="Usando")




studio assembly (10)

Ho una risposta gratuita che funziona in qualsiasi versione di Visual Studio e qualsiasi versione di Framework. Non rimuove i riferimenti non utilizzati, ma li identifica.

È possibile utilizzare Telerik JustDecompile nella DLL del progetto. Basta aprire la DLL in JustDecompile e andare in References per vedere cosa viene effettivamente utilizzato nella DLL compilata.

Come posso trovare ed eliminare riferimenti inutilizzati nei miei progetti?

So che puoi facilmente rimuovere le istruzioni using in 2008, ma questo non rimuove il riferimento reale nei tuoi progetti. La dll di riferimento verrà comunque copiata nel contenitore / pacchetto di installazione.



Dato che VisualStudio (o è msbuild?) Rileva i riferimenti inutilizzati e non li include nel file di output, puoi scrivere uno script che analizza i riferimenti fuori dal csproj e lo confronta con gli Assiemi di riferimento rilevati dalla riflessione sul uscita del progetto.

Se sei motivato ...


Resharper lo farà per te (e quindi molto di più!)


Prova questo: Reference Assistant

Sommario

Reference Assistant aiuta a rimuovere i riferimenti inutilizzati da progetti C #, F #, VB.NET o VC ++ / CLI in Visual Studio 2010.


* Nota: consultare http://www.jetbrains.net/devnet/message/5244658 per un'altra versione di questa risposta.

Leggendo i post, sembra che ci sia un po 'di confusione sulla domanda originale. Fammi prendere una pugnalata.

Il post originale sta davvero ponendo la domanda: "Come faccio ad identificare e rimuovere riferimenti da un progetto di Visual Studio ad altri progetti / assiemi che non sono in uso?" Il poster vuole che gli assembly non appaiano più come parte dell'output di build.

In questo caso, ReSharper può aiutarti a identificarli , ma devi rimuoverli da solo.

Per fare ciò, apri il References in Solution Browser, fai clic con il tasto destro del mouse su ogni assembly di riferimento e seleziona "Find Dependent Code". Vedere:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

Otterrai:

  1. Un elenco delle dipendenze su quel riferimento in una finestra del browser o

  2. Una finestra di dialogo che ti dice "Codice dipendente dal modulo XXXXXXX non è stato trovato.".

Se ottieni il secondo risultato, puoi fare clic con il tasto destro del mouse su Riferimento, selezionare Rimuovi e rimuoverlo dal progetto.

Mentre devi fare questo "manualmente", cioè un riferimento alla volta, si farà il lavoro. Se qualcuno lo ha automatizzato in qualche modo, mi interessa sapere come è stato fatto.

È possibile ignorare praticamente quelli di .Net Framework poiché normalmente non vengono copiati nell'output di build (in genere, sebbene non necessariamente vero per le app Silverlight).

Alcuni post sembrano rispondere alla domanda: "Come rimuovo usando clausole (C #) da un file di codice sorgente che non sono necessarie per risolvere alcun riferimento all'interno di quel file".

In questo caso, ReSharper aiuta in un paio di modi:

  1. Identifica le clausole usando inutilizzate per te durante il rilevamento degli errori al volo. Appaiono come avvertimenti per l'ispezione del codice: il codice apparirà in grigio (di default) nel file e ReSharper fornirà un suggerimento per rimuoverlo:

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. Ti permette di rimuoverli automaticamente come parte del processo di pulizia del codice:

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

Infine, rendi conto che ReSharper esegue l'analisi del codice statico sulla tua soluzione. Pertanto, se si dispone di un riferimento dinamico all'assieme, ad esempio attraverso la riflessione o un assieme caricato in modo dinamico in fase di esecuzione e accessibile tramite un'interfaccia, non lo raccoglierà. Non vi è alcun sostituto per comprendere la base del codice e le dipendenze del progetto mentre si lavora sul progetto. Trovo molto utili le funzionalità di ReSharper.



Penso che siano copiati in bin \, perché nel progetto che ha rimosso il riferimento abbiamo riferimento o altri progetti che hanno lo stesso riferimento ...


Se sai quali riferimenti non sono utilizzati, puoi rimuoverli manualmente.
In Esplora soluzioni, fare clic con il pulsante destro del riferimento nel nodo References e quindi fare clic su Rimuovi.


Ho appena avuto questo problema anche. Ho provato tutti i suggerimenti qui, ma non hanno aiutato.

Ho trovato un'altra cosa per controllare che l'ha risolto per me. In Visual Studio, fare clic con il tasto destro del mouse sul progetto e aprire "Proprietà". Fare clic sulla scheda "Compila" e quindi fare clic su "Opzioni di compilazione avanzate" nella parte inferiore.

Controlla il menu a discesa "CPU di destinazione". Dovrebbe corrispondere alla "piattaforma" che stai costruendo. Cioè, se stai costruendo "Any CPU" allora "Target CPU" dovrebbe dire "Any CPU". Passa attraverso tutte le tue piattaforme rendendole attive e controlla questa impostazione.





.net visual-studio reference