Pergunta

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 referenciada ainda será copiada em seu pacote bin/setup.

Foi útil?

Solução

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

Leitura através das mensagens, parece que há alguma confusão quanto à pergunta original. Deixe-me dar uma facada nele.

O post original está realmente fazendo a pergunta: "Como faço para identificar e referências passará de uma projeto do Visual Studio para outros projetos / conjuntos que não estão em uso?" O cartaz quer as assembléias para não aparecem mais como parte da saída da compilação.

Neste caso, ReSharper pode ajudá-lo identificar , mas você tem que remover -los sozinho.

Para fazer isso, abrir as referências inth Solution navegador, clique direito do mouse sobre cada referência de montagem, e escolher "Encontrar Dependente Code". Veja:

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

Você quer vai ter:

  1. Uma lista de dependências em que Referência em uma janela do navegador, ou

  2. Uma caixa de diálogo dizendo "Código dependente módulo XXXXXXX não foi encontrado.".

Se você obter o segundo resultado, você pode, em seguida, botão direito do mouse clique no Reference, selecione Remover, e removê-lo do projeto.

Enquanto você tem que a este "manualmente", isto é, uma referência a um tempo, ele vai começar o trabalho feito. Se alguém tem automatizado isso de alguma forma eu estou interessado em saber como ele foi feito.

Você pode muito bem ignorar os do Framework .Net como eles normalmente não são copiados para o seu saída da compilação. (Normalmente - embora não necessariamente verdade para Silverlight aplicativos)

Algumas mensagens parecem estar respondendo à pergunta: "Como faço para remover usando cláusulas (C #) a partir de um arquivo de código fonte que não são necessários para resolver quaisquer referências dentro desse arquivo".

Neste caso, ReSharper faz ajuda de duas maneiras:

  1. Identifica não utilizados usando cláusulas para você durante a detecção de erros mosca. Eles aparecem como avisos inspeção de código - o código aparecerá acinzentado (seja padrão) no arquivo e ReSharper irá fornecer uma dica para removê-lo:

    http://www.jetbrains.com/resharper/ características / code_analysis.html # On-the-fly_Error_Detection

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

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

Por fim, perceber que ReSharper faz análise estática de código em sua solução. Então, se você tem uma referência dinâmica ao conjunto - por exemplo através da reflexão ou uma montagem que é carregado dinamicamente em tempo de execução e acessados ??através de uma interface -. Não vai buscá-lo Não há nenhum substituto para a compreensão de seu código base e do projeto dependências como você trabalha em seu projeto. Eu faço encontrar o ReSharper características muito úteis.

Outras dicas

Você pode usar o ' remover referências não utilizadas ' extensão Eu escrevi:

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

Remover referências não utilizadas é uma característica Visual Studio 2008 já suporta. Infelizmente, apenas para projetos VB .NET.

Eu abri uma sugestão no Microsoft Connect para obter esse recurso para projetos C # demasiado:

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

Se você gosta deste recurso, bem, então você pode votar a minha sugestão.

Tente esta: Assistant Referência

Resumo

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

ReSharper vai fazer isso para você (e assim muito mais!)

ReSharper 6.1 inclui os seguintes recursos:

referências -Optimize:. analisar suas referências de montagem e seus usos em código, lista de referências redundantes obter e removê-los

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

-Safe de exclusão de referências de montagem:. Excluirá montagem referências se todos eles são redundantes, caso contrário dispalies usos e pode remover as referências de montagem única redundantes de lista selecionada

I feito isso sem extensão no final VS 2010 Architecture> Gerar Dependência Graph-> Por Assembléia, ele mostra os conjuntos usados, e manualmente removido referências não utilizadas.

Eu tenho uma resposta livre que funciona em qualquer versão de qualquer versão Framework Visual Studio e. Ele não remove as referências não utilizadas, mas identifica-los.

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

enter descrição da imagem aqui

Dado que VisualStudio (ou é MSBUILD?) Detecta referências não utilizadas e não inclui-los no arquivo de saída, você pode escrever um script que analisa as referências fora do csproj, e compara com as Assembléias referenciados detectado pelo reflexão sobre a saída do projeto.

Se você está motivado ...

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

Se você sabe que as referências não são usados, você pode removê-los manualmente.
No Solution Explorer, clique com o botão direito do mouse na referência nos Referências nó e clique em Remover.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top