ti-enxame.com

Remova as referências não utilizadas (! = "Using")

Como posso encontrar e excluir referências não utilizadas em meus projetos?

Eu sei que você pode remover facilmente as instruções using no vs 2008, mas isso não remove a referência real em seus projetos. A dll mencionada ainda será copiada no seu pacote bin/setup.

100
Boris Callens

* Nota: consulte http://www.jetbrains.net/devnet/message/5244658 para obter outra versão desta resposta.

Lendo as postagens, parece que há alguma confusão quanto à pergunta original. Deixe-me dar uma facada nele.

A postagem original está realmente fazendo a pergunta: "Como identifico e removo referências de um projeto do Visual Studio para outros projetos/assemblies que não estão em uso?" O pôster deseja que os conjuntos não apareçam mais como parte da saída da compilação.

Nesse caso, o ReSharper pode ajudá-lo identificar eles, mas você deve remover eles você mesmo.

Para fazer isso, abra o References no Solution Browser, clique com o botão direito do mouse em cada Assembly referenciado e escolha "Find Dependent Code". Vejo:

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

Você receberá:

  1. Uma lista das dependências dessa referência em uma janela do navegador ou

  2. Uma caixa de diálogo informando "O código dependente do módulo XXXXXXX não foi encontrado.".

Se você obtiver o segundo resultado, poderá clicar com o botão direito do mouse na Referência, selecionar Remover e removê-lo do seu projeto.

Embora você precise fazer isso "manualmente", ou seja, uma referência por vez, ele fará o trabalho. Se alguém automatizou isso de alguma maneira, estou interessado em saber como isso foi feito.

Você pode praticamente ignorar os que estão no .Net Framework, pois eles normalmente não são copiados para a saída da sua compilação (normalmente - embora não seja necessariamente verdade para os aplicativos Silverlight).

Algumas postagens parecem estar respondendo à pergunta: "Como removo as cláusulas de uso (C #) de um arquivo de código-fonte que não é necessário para resolver nenhuma referência nesse arquivo".

Nesse caso, o ReSharper ajuda de duas maneiras:

  1. Identifica cláusulas não utilizadas para você durante a detecção de erros em tempo real. Eles aparecem como Avisos de inspeção de código - o código aparecerá em cinza (padrão) no arquivo e o ReSharper fornecerá uma dica para removê-lo:

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

  2. Permite removê-los automaticamente como parte do processo de limpeza de código:

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

Finalmente, perceba que o ReSharper faz análise de código estático em sua solução. Portanto, se você tiver uma referência dinâmica ao Assembly - digamos, por meio de reflexão ou um Assembly que seja carregado dinamicamente no tempo de execução e acessado por meio de uma interface -, ele não será atendido. substitua para entender sua base de código e as dependências do projeto enquanto você trabalha no seu projeto. Acho os recursos do ReSharper muito úteis.

55
jlo

você pode usar a extensão ' Remover referências não utilizadas ' que escrevi:

http://visualstudiogallery.msdn.Microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

12
Spongman

A remoção de referências não utilizadas é um recurso que o Visual Studio 2008 já suporta. Infelizmente, apenas para projetos VB .NET.

Abri uma sugestão no Microsoft Connect para obter esse recurso também para projetos em C #:

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

Se você também gosta desse recurso, pode votar em minha sugestão.

7
jbe

Experimente este: Assistente de Referência

Sumário

O Assistente de Referência ajuda a remover referências não utilizadas dos projetos C #, F #, VB.NET ou VC++/CLI no Visual Studio 2010.

5
Leniel Maccaferri

O ReSharper 6.1 incluirá os seguintes recursos:

-Otimize referências: analise as referências do Assembly e seus usos no código, obtenha uma lista de referências redundantes e remova-as.

-Remover referências não utilizadas: refatoração rápida para remover referências de montagem redundantes.

-Eliminação segura nas referências de montagem: excluirá as referências de montagem se todas elas forem redundantes, caso contrário, dispersa o uso e pode remover apenas referências de montagem redundantes da lista selecionada.

4
Kirill Skrygan

Resharper fará isso por você (e muito mais!)

4
Chris Canal

Fiz isso sem extensão no VS 2010 Ultimate Architecture-> Gerar gráfico de dependência-> Por assembly, ele mostra assemblies usados ​​e removeu referências não utilizadas manualmente.

3
mes

Eu tenho uma resposta gratuita que funciona em qualquer versão do Visual Studio e qualquer versão do Framework. Não remove as referências não utilizadas, mas as identifica.

Você pode usar Telerik JustDecompile na dll do seu projeto. Basta abrir a dll no JustDecompile e vá em References para ver o que é realmente usado na dll compilada.

enter image description here

2
toddmo

Eu acho que são copiados no bin \, porque no projeto que removeu a referência temos referência o outro projeto que tem a mesma referência ...

0
hdmq

Se você souber quais referências não são usadas, poderá removê-las manualmente.
No Gerenciador de Soluções, clique com o botão direito do mouse na referência no nó Referências e clique em Remover.

0
fat

Dado que o VisualStudio (ou é msbuild?) Detecta referências não utilizadas e não as inclui no arquivo de saída, você pode escrever um script que analisa as referências do csproj e compara isso com os Assemblies referenciados detectados por reflexão no saída do projeto.

Se você está motivado ...

0
Benjol